Cheatah: RegEx für URL - Performancetests

Beitrag lesen

Hi,

Die RegExp wurde nur der Lesbarkeit wegen umgebrochen.
Sag bloß! ;) Ja, das ist mir durchaus aufgefallen.

sorry :-) Ist halt ein typischer Fehler, der fast automatisch auftritt, wenn jemand diese Variante der RegExp entdeckt...

Die Performance ist natürlich äußerst suboptimal[tm]. Nach 5000 Testdurchgängen bei einer einfachen HTTP-URL mit Query String (preg_match):

Japp, ungefähr sowas hatte ich erwartet. Jetzt gibt es insbesondere zwei Fragen, die Du Dir in jedem Anwendungsfall stellen solltest:

1.) Wie wichtig ist es Dir, _alle_ korrekten URLs zu erkennen _und_ alle inkorrekten abzulehnen?
2.) Wie oft (Frequenz und jeweils Menge) muss die Prüfung stattfinden?

lange RegExp: durchschnittlich 0.01552809 Sekunden
kurze RegExp: durchschnittlich 0.00065359 Sekunden

Wenn es beispielsweise nicht mehr als ein oder zwei Prüfungen alle paar Sekunden gibt, ist ersteres nicht tragischer als letzteres - beides ist weder subjektiv (also dem User) noch objektiv (in Form von Performance-Einbußen, hoher Rechnerlast usw.) spürbar. Wirst Du jedoch n-fach pro Sekunde die Routine aufrufen müssen, ist die kurze RegExp oder eine verkürzte Variante der langen (z.B. reduziert auf nur ein oder zwei Protokolle) empfehlenswert. In dem Fall solltest Du Dir allerdings grundlegende organisatorische Gedanken darüber machen, wie Du das Gesamtsystem optimierst.

Cheatah