Seite 1 von 1

Wie finde ich am Schnellsten ein Wort im String?

Verfasst: Mittwoch 26. März 2008, 22:17
von Raggi
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

Verfasst: Mittwoch 26. März 2008, 22:58
von birkenfeld

Code: Alles auswählen

"syshead" in string
ist sicherlich die schnellste Methode.

Re: Wie finde ich am Schnellsten ein Wort im String?

Verfasst: Mittwoch 26. März 2008, 23:46
von Leonidas
Raggi hat geschrieben:Gibt es einen schnelleren Weg als einen reg.Ex?
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.

Verfasst: Donnerstag 27. März 2008, 09:14
von BlackJack
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".

Verfasst: Donnerstag 27. März 2008, 10:08
von Raggi
birkenfeld hat geschrieben:

Code: Alles auswählen

"syshead" in string
ist sicherlich die schnellste Methode.
mich überrascht es immer wieder, wie einfach PY ist. Unglaublich.

Danke!