Ich möchte wissen, wie viele Millisekunden eine PHP-for-Schleife benötigt, um ausgeführt zu werden.
Ich kenne die Struktur eines generischen Algorithmus, weiß aber nicht, wie ich ihn in PHP implementieren soll:
Begin
init1 = timer(); // where timer() is the amount of milliseconds from midnight
the loop begin
some code
the loop end
total = timer() - init1;
End
Antworten:
Hierfür können Sie die
microtime
Funktion verwenden. Aus der Dokumentation :Anwendungsbeispiel:
quelle
microtime(true)
wenn Sie Berechnungen mit dem Rückgabewert durchführen möchten.get_as_float
astrue
) verwenden, erhalten Sie laut PHP-Dokumentation Ergebnisse in Sekunden .get_as_float
isttrue
,microtime()
gibt den Wert , der die Sekunden ...$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
(Weitere Informationen in einer Antwort unten .)Sie können
microtime(true)
mit folgenden Manieren verwenden:Setzen Sie dies am Anfang Ihrer PHP-Datei:
// Ihr Skriptcode geht hier
Fügen Sie dies am Ende Ihrer PHP-Datei ein:
Es wird ausgegeben, was Sie ergeben
minutes
.quelle
Sie können
REQUEST_TIME
aus dem$_SERVER
superglobalen Array verwenden. Aus der Dokumentation :Auf diese Weise müssen Sie am Anfang Ihres Skripts keinen Zeitstempel speichern. Sie können einfach tun:
Hier
$time
würde die seit dem Start des Skripts verstrichene Zeit in Sekunden mit einer Genauigkeit von Mikrosekunden (z. B.1.341
für 1 Sekunde und 341 Mikrosekunden) enthalten sein.Mehr Info:
PHP-Dokumentation :
$_SERVER
Variablen undmicrotime
Funktionquelle
$start = $_SERVER["REQUEST_TIME_FLOAT"]; $myscript = microtime(true); $bootstrap = $myscript - $start; ...do stuff ...; $myscripttime = microtime(true) - $myscript;
$myscripttime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
am Ende Ihres Skripts, ohne am Anfang einen Zeitstempel speichern zu müssen.$time
die Differenz in Sekunden , nicht in Mikrosekunden .1.1
entspricht zB 1 Sekunde + 100 Mikrosekunden.Erstellen Sie die Datei loadtime.php
Als am Anfang Ihres Skripts, nach dem
<?php
Schreibeninclude 'loadtime.php'; $loadtime=new loadTime();
Wenn die Seite am Ende geladen wird, wird "In x Sekunden geladen" geschrieben.
quelle
</html>
ungültigen schließenden Tagquelle
Siehe microtime () .
quelle
Hier ist eine Funktion, die die Ausführung eines PHP-Codes zeitlich festlegt, ähnlich wie das Python-Timeit-Modul: https://gist.github.com/flaviovs/35aab0e85852e548a60a
Wie man es benutzt:
Ergebnis:
Haftungsausschluss: Ich bin der Autor dieses Gists
BEARBEITEN: timeit ist jetzt ein separates, eigenständiges Projekt unter https://github.com/flaviovs/timeit
quelle
Sie haben die richtige Idee, außer dass mit der microtime () ein genaueres Timing verfügbar ist. Funktion .
Wenn das, was sich in der Schleife befindet, schnell ist, ist es möglich, dass die scheinbar verstrichene Zeit Null ist. Wenn ja, wickeln Sie eine weitere Schleife um den Code und rufen Sie ihn wiederholt auf. Teilen Sie die Differenz durch die Anzahl der Iterationen, um eine einmalige Zeit zu erhalten. Ich habe Code profiliert, für den 10.000.000 Iterationen erforderlich waren, um konsistente, zuverlässige Timing-Ergebnisse zu erzielen.
quelle
Ich dachte, ich würde die Funktion teilen, die ich zusammengestellt habe. Hoffentlich können Sie Zeit sparen.
Es wurde ursprünglich verwendet, um das Timing eines textbasierten Skripts zu verfolgen, sodass die Ausgabe in Textform erfolgt. Sie können es jedoch problemlos in HTML ändern, wenn Sie dies bevorzugen.
Es werden alle Berechnungen für Sie durchgeführt, um festzustellen, wie viel Zeit seit dem Start des Skripts und in jedem Schritt aufgewendet wurde. Es formatiert die gesamte Ausgabe mit 3 Dezimalstellen. (Bis auf Millisekunden.)
Sobald Sie es an den Anfang Ihres Skripts kopiert haben, müssen Sie nur die recordTime-Funktionsaufrufe nach jedem Stück setzen, das Sie zeitlich festlegen möchten.
Kopieren Sie dies an den Anfang Ihrer Skriptdatei:
Um die verstrichene Zeit zu verfolgen, gehen Sie einfach wie folgt vor:
Beispielsweise:
Gibt Ausgabe wie folgt:
Hoffe das hilft jemandem!
quelle
Hier ist eine sehr einfache und kurze Methode
quelle
Wenn Sie diese Zeit in Sekunden anzeigen möchten:
quelle
Hier ist eine Implementierung, die Sekundenbruchteile zurückgibt (dh 1,321 Sekunden).
quelle
Hier ist mein Skript zum Messen der durchschnittlichen Zeit
quelle
Sie können die Ausführungszeit in Sekunden mit einer einzigen Funktion ermitteln.
quelle