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')
und ihn mit der einfachen Verwendung von re.match() ohne Kompilierung vergleichen:
re.match('hello', 'hello world')
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!