Thread Performance Problem mit Perl bei RegEx (34 answers)
Opened by nomoresecrets at 2009-05-11 17:16

topeg
 2009-05-12 06:55
#121510 #121510
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Das mit dem Geschwindigkeitsvorteil mit "forks" war wie gesagt nur eine Vermutung, wie es scheint wird jeglicher Vorteil durch den Overhead aufgefressen. Ein Test war es trotzdem wert.

Du hast natürlich recht das das "/o" innerhalb der Schleife besser aufgehoben ist.

Ich habe gerade noch etwas mit der "$chuncksize" gespielt und dabei festgestellt, dass ich bei mir die besten Ergebnisse mit
Code (perl): (dl )
$chuncksize=100*1024;
(ungefähr zwischen 200*1024*1024 und 50*1024) bekomme, vermutlich liegt es daran, dass die RegexpEngine immer langsamer wird je länger der zu durchsuchende String ist. Wird er zu kurz fällt das Neustarten der Engine ins Gewicht und das Script wird wieder langsamer.

EDIT:
Das zweite Beispiel mit den von dir vorgeschlagenen Änderungen und der angepassten "chunksize":
Quote
>$ time ./bin/regexpfind2.pl
anzahl treffer: 1010759

real 0m1.233s
user 0m0.828s
sys 0m0.392s

Mehr ist bei meinem System scheinbar nicht zu wollen. :-)

EDIT2:
Für alle die es interessiert ein Durchlauf mit grep:
Quote
>$ time grep -ic -- "--TEST--" test.random.txt
922896

real 0m0.784s
user 0m0.424s
sys 0m0.312s

Last edited: 2009-05-12 07:15:34 +0200 (CEST)

View full thread Performance Problem mit Perl bei RegEx