Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.073 Beiträge
 
Delphi 12 Athens
 
#44

AW: PHP - sind hier "Sicherheitsexperten" an Board?

  Alt 4. Jul 2010, 11:32
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Jul 2010 um 11:36 Uhr)
  Mit Zitat antworten Zitat