GetTimeOfday () ist eine integrierte Funktion in PHP, die Details der aktuellen Zeit zurückgibt, einschließlich Sekunden und Mikrosekunden. Sein Rückgabewert ist ein Array, das die folgenden Schlüssel enthält:
Sek .: Die Anzahl der Sekunden der Stromzeit (berechnet aus der Unix -Epoche)
USEC : Die Anzahl der Mikrosekunden in der aktuellen Sekunde
Durch diese beiden Werte können wir einen genaueren Zeitstempel als Time () oder microtime () erhalten, was für Leistungstests mit hoher Präzision geeignet ist.
Die Grundidee ist: Notieren Sie den Zeitunterschied vor und nach der Ausführung des Codes und berechnen Sie die Ausführungszeit.
<?php
// Notieren Sie die Startzeit
$start = gettimeofday();
// Hier ist der Code, den Sie testen möchten
usleep(500000); // Analoge Verzögerung 0.5 Zweite
// Notieren Sie die Endzeit
$end = gettimeofday();
// Berechnen Sie den Zeitunterschied,单位为Zweite(含微Zweite)
$duration = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "Code -Ausführungszeit:{$duration} Zweite";
?>
Im obigen Code:
GetTimeOfday () gibt ein assoziatives Array zurück.
Wir berechnen die Differenz in Sekunden und die Differenz der Mikrosekunden und konvertieren sie dann in Sekunden.
Die endgültige $ Dauer ist eine schwimmende Punktzahl, die die genaue Anzahl von Sekunden, in denen der Code ausgeführt wird, darstellt.
Angenommen, wir möchten die Leistung einer Funktion testen:
<?php
function testFunction() {
$sum = 0;
for ($i = 0; $i < 1000000; $i++) {
$sum += $i;
}
return $sum;
}
$start = gettimeofday();
$result = testFunction();
$end = gettimeofday();
$duration = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "Funktionsausführungsergebnis:$result\n";
echo "Ausführungszeit:{$duration} Zweite\n";
?>
In diesem Beispiel messen wir die Zeit, in der die Funktion Testfunction () ausgeführt wird, um uns zu erleichtern, die Funktionsleistung zu bewerten.
Hohe Präzision : Zeitmessung auf Mikrosekundenebene, genauer als die Zeit () .
Einfach und einfach zu bedienen : Der Rückgabewert ist ein Array, und die Informationen von Sekunden und Mikrosekunden sind klar.
Keine Abhängigkeit : PHP-integrierte Funktionen, keine Erweiterungen sind erforderlich.
Die von GetTimeOfday () zurückgegebene Zeit ist die aktuelle Zeit des Servers, die von Systemzeiten beeinflusst werden kann und nicht für Cross-Server- oder Distributed-Zeitvergleiche geeignet ist.
Für sehr kurze Codesegmente kann die Ausführungszeit sehr gering sein, und es wird empfohlen, mehrmals auszuführen und den Durchschnittswert für stabilere Ergebnisse zu berechnen.