Slyh: RegExp-geschwindigkeit

Beitrag lesen

Hallo,

ohje, noch ein Karlsruher. Gibt's im SelfHTML-Forum auch Poster, die
nicht aus Karlsruhe kommen? :-)

ich weiss nicht, wie's in java ist, aber in perl ist das afais nicht so.

»»
[...]
»»

Rate    regexp_br       boring regexp_split
  regexp_br    390168/s           --         -16%         -31%
  boring       464253/s          19%           --         -18%
  regexp_split 569152/s          46%          23%           --

Beeindruckend. Ich kann nur spekulieren, daß Perl in solchen Sonderfällen
auf nativen Code zurückgreift oder daß String-Operationen besonders
langsam sind oder dergleichen.

Ich habe mal kurz einen kleinen Mikro-Benchmark in Java geschrieben,
der die Split- und die Substring-Methodik miteinander vergleicht.

Auf meinem Rechner benötigt Java für 10.000.000 Splits ca. 22,23 Sekunden.
Für Substring werden nur 1,61 Sekunden benötigt. (Inkl. dem Anlegen
eines Arrays mit 2 Elementen.)

Umgerechnet ergibt dies etwa 450.000 Splits pro Sekunden und ca. 6.211.000
Substrings pro Sekunde.

System: JDK1.5.0_08 auf Athlon 64 X2 (Dual Core) 3800+ Prozessor.

Mikrobenchmarks sind natürlich immer mit Vorsicht zu genießen. Aber
eine gewisse Tendenz ist durchaus ablesbar.

Gruß
Slyh