Einzelnen Beitrag anzeigen
  #11 (permalink)  
Alt 06.10.2009, 10:12
Benutzerbild von mantiz
mantiz mantiz ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.845
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Ich hab' mir mal schnell ein kleines Script geschrieben um's zu testen:

PHP-Code:
<?php

$time 
microtime(true);

$file '../logs/access.log';

$mozilla 0;

if ( (
$fp fopen($file'r')) !== false) {
    while (!
feof($fp)) {
        
$line fgets($fp);
        
        if (
preg_match('/\"[^\"]*Mozilla[^\"]*\"$/is'$line)) {
            
$mozilla++;
        }
    }
    
fclose($fp);
}

echo 
"Mozilla: "$mozilla"<br />\n";

$time microtime(true) - $time;

echo 
number_format($time5',''.'), " Sekunden<br />\n";

?>
Bei mir braucht er bei einer 7,5 MB Logdatei (ca. 35000 Zeilen) 0,3 - 0,5 Sekunden, also grob mal 6 oder 7 und ich lande bei Deinen 2 (bzw. 3) Sekunden.
Allerdings muss ich dazu sagen, dass ich das script in einer VM habe laufen lassen und diese sind ja bekannt dafür, dass sie eine schlecht IO-Performance haben, auf einem realen System sollte es schneller (deutlich) schneller sein.

Mit diesem Script brauche ich ca. 0,5 - 0,6 Sekunden, wobei der erste Zugriff deutlich langsamer war, ca. 2 Sekunden. Ich schätze danach war die Datei im Cache, möchte es aber dennoch nicht vorenthalten.

PHP-Code:
<?php

$time 
microtime(true);

$file '../logs/access.log';

$mozilla 0;

$lines file($file);

foreach (
$lines as $line) {
    if (
preg_match('/\"[^\"]*Mozilla[^\"]*\"$/is'$line)) {
        
$mozilla++;
    }
}

echo 
"Mozilla: "$mozilla"<br />\n";

$time microtime(true) - $time;

echo 
number_format($time5',''.'), " Sekunden<br />\n";

?>
Mit Zitat antworten
Sponsored Links