php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Ladezeit mit php messen


 
KRIZ
05-04-2002, 15:33 
 
Hi,
Ich möchte mit php die Zeit messen, wie lange es braucht eine Seite bzw. einen script zu durchlaufen!
Ist das mit php möglich?
Wenn ja wie?

danke u gruss
KRIz

 
hand
05-04-2002, 16:31 
 
// Gaaaanz zu Beginn eines Skripts
<?php
$STARTZEIT = time();
?>






// Gaaaanz am Beginn eines Skripts
<?php
$LAUFZEIT = time() - $STARTZEIT;
print "Total Duration of this page: $LAUFZEIT seconds";
?>

 
Kropff
05-04-2002, 16:32 
 
setz am begin des scriptes eine zeitvariable z.b
$time_a= microtime();
und am ende des scriptes
$time_b= microtime();
dann einfach $time_b - $time_a und du hast die differenz in microsekunden
gruss
peter

 
KRIZ
05-04-2002, 16:41 
 
Und genau so geht es leider nicht!
Habe ich auch schon ausprobiert, die Zeit in Sekunden beträgt dann genau 0, dabei dauert es mal locker ne halbe min bis die Page vollständig geladen iss!!

Mit microtime kann ich leider nich arbeiten, da ich ein windows system habe, und diese funktion dort nicht zur verfügung steht.

Die Start und die Endzeit iss auf die hunderztel sekunde gleich, ich habe das gefühl als würde das skript erst mal nen komplett durchlauf machen und dann die page laden.

Woran kann das liegen?

 
hand
05-04-2002, 16:56 
 
Und genau so geht es aber, es muß an was anderem liegen, daß es hier zu solchen Differenzen kommt.

Wenn da Null Sekunden steht, hast entweder einen Fehler bei der Berechnung, oder die Angabe stimmt.

Wenn die Angabe stimmt hast Du noch die Übertragungszeit des Request an den Browser und dann jene Zeit die der Browser benötigt um die Daten zu rendern um sie darzsustellen.

Die Übertragungszeit ist aber nicht nur von der Datenmenge bestimmt sondern auch von der Verbindung, Routing und Leitungsqualität - Unterbrechungen, etc.

Wenn Du lokal über Loopback zugreifst kann man die Übertragungszeit relativ zur Exekutionszeit vernachlässigen.

Was aber auch sein kann, ist daß der Request nicht sofort vom Server bearbeitet wird.

Das ganze spielt sich aber nie in der Größenordnung von einer halben Minute ab.

Wenn Du in der Mitte ein sleep() einbaust, wirst Du sehen, daß am Ende des Skript diese Sleeptime berücksichtigt wurde.

 
JOat
05-04-2002, 23:43 
 
also so wie es hand schreibt gehts bei mir wunderbar!!

ich hab ein winsystem!!

SOAFRJOAT

 
hand
06-04-2002, 08:08 
 
<?
$STARTZEIT = time();
sleep(3); // sleep 3 Sekunden
$LAUFZEIT = time() - $STARTZEIT;
print "Total Duration of this page: $LAUFZEIT seconds";
// generiert Ausgabe: "Total Duration of this page: 3 seconds"
?>

 
MelloPie
06-04-2002, 11:03 
 
Ist das wirklich dann die Ladezeit oder die Serverzeit, die gebraucht wird um das Script auszuführen...
Wie ist es mit der Latenzzeit im Netz, etc?

 
hand
06-04-2002, 11:13 
 
Logischer Weise nur die Skript Durchlaufzeit, die nicht jene Zeit beinhaltet die der Server benötigt für Requestannahme, Prozeßaufbau und Skriptladevorgang, was sich aber sicher nicht im halben Minutenbereich abspielen kann, und wie schon erwähnt ohne jene Zeit die benötigt wird, die Daten an den Client zu übermitteln.


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:56 Uhr.