Laufzeit messen

Beispiel ausführen
Eine einfache Möglichkeit um z.B. die benötigte Zeit von Funktionen zu vergleichen. Dieses Beispiel ist eine Weiterentwicklung des Skriptes der php-faq-Liste. Bei solchen Benchmarktest ist darauf zu achten, dass die tatsächliche Arbeit, also das was die zu messende Funktion tut, deutlich grösser ist, als der Overhead, also die durch die Ausführung des Skriptes als solches benötige Arbeit. In der Regel muss man die zu messende Funktion oder Berechnung mehrfach durchführen, um zu messbaren Resultaten zu kommen.
<?php

function BenchmarkTimer ($EventMessage ''$ResetEventTimer false)
{
    static 
$StartTime false;
    static 
$EventTime 0;

    
// aktuelle Zeit ermitteln
    
list($low$high) = split(' 'microtime());
    
$t $high $low;

    
// bei erstem Aufruf initialisieren
    
if ($StartTime == false){
        
$StartTime $t;
        
$EventTime $t;
        }

    
// ggf. EventTimer zurücksetzen
    
if ($ResetEventTimer) {
        
$EventTime $t;
    }

    
// verstrichene Zeit seit erstem Aufruf
    
$TotalTimeElapsed $t $StartTime;


    
// verstrichene Zeit seit letztem Aufruf
    
$EventTimeElapsed $t $EventTime;

    
$EventTime $t;

    
$msg sprintf (
            
'<br>%s (%8.4f) (%8.4f)<br>'
            
,$EventMessage
            
,$TotalTimeElapsed
            
,$EventTimeElapsed
            
);
    return 
$msg;
}


$iterations 400;

$nbr2loop $iterations;
$dummy 1;
print 
BenchmarkTimer('start A');

while (
$nbr2loop-- > 0){
    
$dummy += pow($dummy,2);
}
print 
BenchmarkTimer('stopA');

$nbr2loop $iterations;
$dummy 1;
print 
BenchmarkTimer('start B'true);

while (
$nbr2loop-- > 0){
    
$dummy $dummy*2;
}
print 
BenchmarkTimer('stopB');



?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff