Internet, Soft- & Hardware, Erfahrungsberichte, PHP. Unsere Artikel zum digitalen Leben.
[PHP-Performance] Ordner auslesen
Hallo User!
Auch noch zur späten bzw frühen Stunde habe ich unermüdlich *gähn* getestet, ob glob() oder opendir() + Konsorten schneller ist. Das Ergebnis:
Hier der Code:
<?php
$dir = dirname(__FILE__)."/";
$start = microtime();
for($i = 1;$i <= 1000; $i++)
{
$dirHandle = opendir($dir);
while(($file = readdir($dirHandle)) !== FALSE)
{
echo "<p>Filename : <b>$file</b></p>\n";
}
closedir($dirHandle);
}
$end = microtime();
$diff = $end-$start;
echo ".<p>Diese Seite wurde in $diff generiert</p>\n";
$start = microtime();
for($i = 1;$i <= 1000; $i++)
{
foreach(glob($dir."*.*") as $filename)
{
echo "<p> Filename : <b>".basename($filename)."</b></p>";
}
}
$end = microtime();
$diff = $end-$start;
echo ".<p>Diese Seite wurde in $diff generiert</p>\n";
?>
Die Ausgabe ist zu lang deswegen kann ich sie hier nicht posten!
Strg+F -> Suche nach generiert.
Eindeutig ist anders! Und wer liest bitten schön 3 Dateien 1000 mal aus (3*1000=3000 Dateien). Man kann also sagen, dass glob minimal langsamer ist, es sich aber kaum negativ auswirkt, obwohl glob vorher noch eine RegExp bearbeiten muss und damit viel umfangreicher als opendir ist.
| Artikel drucken | Dieser Beitrag wurde von Marvin Strauch am 8. Juli 2009 um 02:10 veröffentlicht und unter PHP abgelegt. Du kannst allen Antworten zu diesem Beitrag durch RSS 2.0 folgen. Du kannst eine Antwort schreiben oder einen Trackback von deiner eigenen Seite hinterlassen. |
vor 2 Wochen
Zumal man bei opendir() in vielen Fällen noch zusätzliche Filterungen implementieren müsste. Während also glob() direkt schon die gewünschten Dateien herausfiltert, kommen bei opendir() weitere Funktionen zum Einsatz. Somit ist glob() eigentlich vorbehaltslos zu empfehlen.