Hallo,
ich habe eine Frage in Sachen Performance-Optimierung:
wie findet Python am schnellsten heraus, ob ein String die Zeichenfolge "syshead" behinhaltet? Die Antwort sollte Boolean sein, da beim einem False der Exit kommt.
Gibt es einen schnelleren Weg als einen reg.Ex?
Grüße!
Raggi
Wie finde ich am Schnellsten ein Wort im String?
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Code: Alles auswählen
"syshead" in string
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Von der Herangehensweise ist die Frage eher ob es einen langsameren Weg als reguläre Ausdrücke gibt. Ein endlicher Automat wie die Regular Expression Engine (ob jetzt NFA oder DFA macht in dieser Größenordnung keinen Unterschied) wird immer langsamer sein als das Vergleichen von (Byte)Werten.Raggi hat geschrieben:Gibt es einen schnelleren Weg als einen reg.Ex?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Kommt auf die Umsetzung an. So ein "statischer" Ausdruck ist ja letztendlich auch nur vergleichen von Bytewerten. Wenn man dann noch einen JIT-Compiler in die RE-Engine einbaut, sollte das nicht viel langsamer werden als "normales" Testen auf "enthalten sein".
mich überrascht es immer wieder, wie einfach PY ist. Unglaublich.birkenfeld hat geschrieben:ist sicherlich die schnellste Methode.Code: Alles auswählen
"syshead" in string
Danke!