PHP Get Laden der Seite Stats - Wie misst man die php-Skript-Ausführung / Ladezeit
Was ich in den header:
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
Was ich in der Fußzeile:
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Page generated in ' . $total_time . ' seconds.';
Ausgabe: Seite generiert in 1292008977.54 Sekunden.
Kann jemand bitte mir helfen herauszufinden, warum das Ergebnis nicht stimmt?? Ich bin mit PHP5.
- du bist das überschreiben von $irgendwo anfangen
- Ich lief einfach deinen code von oben mit einem
sleep(2);
zwischen den 'header' und 'footer' und bekamPage generated in 2.0055 seconds.
So etwas in der Mitte von deinem Skript wahrscheinlich. (die Col. Schrapnell schrieb, während ich lief mein test,.. ) - Mein code noch den code aufgeführt sind, in den ersten 2 Antworten, die für mich funktioniert. Es muss etwas sein, was in dem rest von meinem Skript, dass die Ursache der Probleme. Ich habe bemerkt, dass der start-Zeit-variable ist nicht vorhanden in meinem footer-Datei.
- sind Sie einschließlich der footer-Datei innerhalb einer Funktion?
- Geltungsbereich von Variablen-Problem? php.net/manual/en/language.variables.scope.php
Du musst angemeldet sein, um einen Kommentar abzugeben.
microtime()
gibt die aktuelle Unix-timestamp mit Mikrosekunden. ich sehe keine Mathematik gibt, hat die Umwandlung von Mikrosekunden Sekunden.microtime(true)
gibt die Zeit, wie ein Schwimmer in SekundenSehen, wie dies ist das erste Ergebnis in Google, ich dachte, ich würde teilen meine Lösung für dieses problem. Setzen Sie diese an der Spitze Ihrer Seite:
Und dann diesen code an der Unterseite der Seite:
Wenn Sie Ansicht-Quelltext einer Seite können Sie sehen, die Ladezeit in einem Kommentar auf die Letzte Zeile Ihrer HTML.
Können Sie diese einfache Funktion, um zu vermeiden, den Gültigkeitsbereich der Variablen Ausgabe:
$start=microtime(1); echo microtime(1) - $start
; keine Verwendung für die Funktion hier.Ich gerne so etwas wie dieses. Macht es einfach zu Zeit mehrere code-Blöcke ohne jonglieren mit Variablen Namen und so. Sitzungen aktiviert werden.
Verwendung:
Setzen Sie diese in Ihrem Kopf
und diese in der Fußzeile
dies wird Ihnen sagen, wie lange es dauerte, Ihre Webseiten zu generieren und wie viel Speicherplatz verwendet wurde, die Seite zu laden
Das Problem ist der Geltungsbereich der Variablen. Sie legen Ihre $start variable im header, sondern im footer, diese variable wird leer sein. Also $total_time gerade die aktuelle Zeit - 0, geben Sie die aktuelle Uhrzeit.
Eine Lösung ist die Verwendung der php-GLOBALS. In der Kopfzeile:
Und in der Fußzeile:
Anstelle von microtime in jede einzelne Seite, was, die ich tun würde, ist, Sie microtime in $_REQUEST und subtrahieren Sie dann, dass die Zeit von der aktuellen Zeit innerhalb einer Funktion, und-Funktion, die aufgerufen wird, wenn der Skript-Ausführung wird beendet mit:
register_shutdown_function ( 'Your_function_name' );
Ich denke, dass es sinnvoll ist, verwenden Sie ein globales Skript, welches aufgenommen werden, am Anfang von jedem script /Klasse in der gesamten Anwendung, es hilft mir im Umgang mit Fehlern, Verwaltung von Sitzungen, etc...
Hinzufügen microtime zu $_REQUEST wäre die erste Zeile in diesem Skript, und Sie können Ihre beenden-Funktion gibt es auch.