Dein Vergleich hinkt aber etwas.
Wenn man das preg_match nutzt, um etwas zu suchen, dann kann man es doch nicht mit einem einfachen Vergleich (=) vergleichen?
strpos oder so wäre da wohl ein besserer Vergleichspartner.
Code:
$preg = '#Foobar#i';
$pos = 'Foobar';
$toMatch = ' Foobar ';
$num = 100000;
$pregStart = microtime(true);
$i = 0;
while ($i < $num) {
preg_match($preg, $toMatch);
$i++;
}
$pregStop = microtime(true);
$eqStart = microtime(true);
$i = 0;
while ($i < $num) {
strpos($toMatch, $pos);
$i++;
}
$eqStop = microtime(true);
echo 'Time preg: '. ($pregStop-$pregStart) .' seconds<br />';
echo 'Time pos: '. ($eqStop-$eqStart) .' seconds<br />';
Time preg: 0.090588092803955 seconds
Time pos: 0.047449111938477 seconds
Gut, hier ist es zwar immernoch knapp doppelt so langsam ... ~2:1,
aber das 17:1 kann ich so nicht bestätigen.
Aber mal ganz im Ernst, fallen die 0.5 Microsekunden mehr pro Vergleich, bei den wenigen Vergleichen und vorallem für soein kleines Projekt, wirklich noch auf?
Bei z.b. 20 Vergleichen (ich hatte viel weniger drin) macht das hier grade mal 10 Microsekunden aus, was durch die "langsame" Internetverbindung allemale überboten wird.
Mit einem etwas längerem Text vor dem Gesuchten, kam ich maximal auf die 4-fache Zeit. (also in dem Größenbereich/Länge, welchen ich erwarten würde)
Ich spare auch gerne hier und da mal 'nen bissl Zeit ein, aber hier (vorallem in meinem Fall) fällt es schlußendlich garnicht auf.