Frage

Was ist der beste Weg, Perl zum Profil Regexes, um zu bestimmen, wie teuer sie sind?

War es hilfreich?

Lösung

Perl kommt mit dem Benchmark -Modul, das eine Reihe von Codebeispielen nehmen und Antwort die Frage „was man ist schneller?“. Ich habe ein Perl Tipp auf Mastering Perl Buch. Er war nett genug, um die Kapitel als Entwurf on-line zu setzen , das ist gut die lesenswert. Ich kann es wirklich nicht genug empfehlen.

Paul

Andere Tipps

Nur zu sagen „verwenden, um die Benchmark“ Modul antwortet nicht wirklich die Frage, though. eine Regex Benchmarking ist anders als eine Berechnung Benchmarking; Sie benötigen eine große Menge an realistischen Daten, so dass Sie die Regex als reale Daten würden betonen können. Wenn die meisten Ihrer Daten übereinstimmen, dann würden Sie einen regulären Ausdruck möchten, die schnell übereinstimmt; wenn die meisten scheitern wird, möchten Sie einen regulären Ausdruck, die schnell ausfällt. Sie können sein die gleiche Regex aufzuwickeln, aber vielleicht auch nicht.

Mein bevorzugter Weg, um eine große Menge von Eingangsdaten an den RE zu haben sei dann, dass die Daten N-mal verarbeiten (beispielsweise 100.000), um zu sehen, wie lange es dauert.

Dann die RE zwicken und versuchen Sie es erneut (halten alle alten REs wie Kommentare, falls Sie Benchmarks müssen sie wieder in der Zukunft, wer weiß, was wundersame Optimierungen in Perl 7? Erscheinen).

Es kann auch Werkzeuge sein, die REs analysieren können Ihnen Ausführungspfade für bestimmte Eingaben zu geben (wie die Analyse-Tools in DBMS '), aber da Perl die Sprache des faul ist (ein Gebot von Larry selbst überliefert), I wird die Mühe gemacht, geht es kann nicht finden: -).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top