Verbessert „re.compile()' wirklich die Leistung regulärer Ausdrücke in Python?

Mary-Kate Olsen
Freigeben: 2024-11-07 09:15:03
Original
547 Leute haben es durchsucht

Does `re.compile()` Really Improve Regular Expression Performance in Python?

Untersuchung der Wirksamkeit von re.compile()

Es ist eine gängige Praxis, Pythons re.compile() zu verwenden, um die Leistung von zu verbessern reguläre Ausdrücke. Allerdings fragt man sich vielleicht, ob dieser Kompilierungsschritt tatsächlich erhebliche Vorteile bietet.

Angenommen, wir haben einen regulären Ausdruck „Hallo“, den wir mit „Hallo Welt“ abgleichen möchten. Indem Sie den Ausdruck mit re.compile() kompilieren, wie unten gezeigt:

h = re.compile('hello')
h.match('hello world')
Nach dem Login kopieren

und ihn mit der einfachen Verwendung von re.match() ohne Kompilierung vergleichen:

re.match('hello', 'hello world')
Nach dem Login kopieren

führt eine erneute Kompilierung durch () bieten nennenswerte Leistungsvorteile?

Basierend auf persönlichen Erfahrungen mit der tausendfachen Ausführung kompilierter regulärer Ausdrücke im Vergleich zum Kompilieren im laufenden Betrieb wurde kein wahrnehmbarer Unterschied beobachtet. Dies deutet darauf hin, dass der Kompilierungsprozess möglicherweise keinen wesentlichen Einfluss auf die Ausführungsgeschwindigkeit hat.

Weitere Untersuchungen zeigen, dass Python reguläre Ausdrücke intern kompiliert und zwischenspeichert, selbst wenn re.match() verwendet wird. Dies bedeutet, dass sich re.compile() im Wesentlichen ändert, wenn die Kompilierung erfolgt, dies jedoch nicht zu einer wesentlichen Zeitersparnis führt. Die tatsächliche Zeitersparnis beschränkt sich auf die Zeit, die zum Überprüfen des internen Caches erforderlich ist.

Daher wird empfohlen, dass die Entscheidung zur Vorkompilierung regulärer Ausdrücke auf der beabsichtigten Verwendung und nicht auf der Leistungsoptimierung basiert. Bei wiederverwendbaren benannten Ausdrücken kann die Vorkompilierung die Lesbarkeit des Codes verbessern, aber möglicherweise nicht die Ausführungsgeschwindigkeit drastisch verbessern.

Das obige ist der detaillierte Inhalt vonVerbessert „re.compile()' wirklich die Leistung regulärer Ausdrücke in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!