ugrás a tartalomhoz

Lua - egy nagy csalódás

mind1 valami név · 2020. Jún. 26. (P), 11.45
Pár éve neki akartam állni egy saját monitoring program írásának.
Nem lett belőle semmi, de emiatt összetákoltam egy teszt programot, amivel meg tudtam mérni, hogy adott tevékenységet (esetemben a /proc alatti állományok olvasását) melyik nyelv, milyen sebességgel képes végezni.
Valaki kisegített egy Lua nyelven írt teszttel és rendesen megdöbbentett: nagyjából a C programmal azonos időt produkált, messze lekörözve minden mást.

A napokban előszedtem megint a logokban turkálós mániámat és az eredetileg bash+perl+linux tool alapokra épülő egyik programot átírtam tiszta python-ra. Meglepő módon a python a gyorsabb. (3-as, ami egyébként jóval lassúbb bizonyos feladatoknál a 2-esnél)
Na itt jött a nagy ötlet: ha a python ilyen gyors, nézzük, mit tud a Lua?
A feladat perlben ennyi:
 perl -nle '/^(... .. ..):.*DROP.*DST=(\S+)/ && do { print $1,"\t",$2 }'
Sajnos(?) a Lua nem rendelkezik regex feldolgozási képességgel ismereteim szerint és az interpretere sem tud annyit, mint a perl, így ez lett belőle:
lua5.3 -e 'l=io.read("*l"); while l do m=string.match(l,"^(... .. ..):..:.. .* DROP .*DST=(%S*)"); if m then print(m) end; l=io.read("*l"); end'
Ugyanazon az inputon+gépen a perl 12s körül fut le, a lua 35-38s... :(

Hát nagyot csalódtam. :)

Ui: a weblaborban is... a topic nyitásakor megnyitott előnézetből már nem tudom menteni a témát, mert valami captcha problémáról makog a szerver...