( bucko | 2019. 09. 15., v – 09:22 )

:-D
De azért jó úton haladsz!
Az awk, ha sok string műveletet használsz, akkor belefut a garbage collection-be, meg a paging növekedésébe. (Ez az információ még az upgrade után 75MHz POWER + 128MB ram időkből származik.)
Ilyenkor érdemes egy kicsit átfogalmazni a tennivalókat.

Manapság meg a néhány millió rekord első szottyra betölthető a memóriába. Rengeteget programoztam C-ben, 10-15M 40-50 mezős, változó mezőhosszú rekordokkal, de 20 év alatt egyszer sem volt szükségem a malloc() és tsaira. Szóval próbálj meg pic-ként programozni! ;)
Az esetek többségében elfelejtheted a string műveleteket is, mert sokkal tovább tartanak.
Egy egyszerű példa, ha irányítószámokkal kell dolgozni. A 4db karaktert elrakhatod stringként is, így plusz foglalás meg 5 karakter lesz belőle. Aztán összehasonlíthatod str[n]cmp() segítségével.
Hasonlóan felesleges gondolat az atoi() használata, hiszen utána sem lesz jobb a helyzet.
A legegyszerűbb, ha a helyén hagyod és 32 bites int vagy int*-ként használod. Ezzel egy nagyságreddel gyorsabb lesz a programnak ez a része.