Frage

Hat jemand Erfahrung mit der Messung von Glibc-Regexp-Funktionen?Gibt es allgemeine Tests, die ich durchführen muss, um solche Messungen durchzuführen (zusätzlich zum Testen der genauen Muster, nach denen ich suchen möchte)?

Danke.

War es hilfreich?

Lösung

Die Leistung regulärer Ausdrücke hängt stark davon ab, welchen regulären Ausdruck Sie verwenden und auf welche Daten Sie ihn anwenden.Es macht wenig Sinn, nur eine Reihe regulärer Ausdrücke zu vergleichen.Sie müssen den tatsächlichen Code mithilfe eines regulären Ausdrucks und Ihrer tatsächlichen einfachen C-Alternative anhand Ihrer tatsächlichen Daten vergleichen.

Als Faustregel würde ich sagen: Wenn Sie bereits über ordnungsgemäß funktionierenden prozeduralen Code verfügen, um den benötigten Textabgleich durchzuführen, lassen Sie diesen einfach bestehen.Wenn Sie diesen Code noch nicht haben, empfehle ich, mit regulären Ausdrücken zu beginnen, da Sie dadurch viel Entwicklungszeit sparen (vorausgesetzt, Sie sind mit regulären Ausdrücken vertraut).Sie können wahrscheinlich prozeduralen Code schreiben, der schneller ist als der entsprechende reguläre Ausdruck, aber der Unterschied wird nicht dramatisch sein.Der Aufwand für das Schreiben und Pflegen des prozeduralen Codes wird deutlich höher sein als bei der Verwendung eines regulären Ausdrucks.

Andere Tipps

Sind Sie handgeschriebenen Zeichen-by-char Vergleich Standard String-Matching-Funktionen oder Smart-Text-Matching-Algorithmen verwenden?

Im ersten Fall vor allem zu regexp Schalen noch schneller sein kann, abhängig von der Art der regexp und der Bibliothek, die Sie verwenden (es nicht nur glibc ist, gibt es viele Bibliotheken um: PCRE, die aufgelisteten hier und vieles mehr).

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