Heim  >  Artikel  >  Web-Frontend  >  Beispiel für die Verwendung von Mikrosekunden zur Berechnung der Skriptausführungszeit in PHP_Javascript-Kenntnissen

Beispiel für die Verwendung von Mikrosekunden zur Berechnung der Skriptausführungszeit in PHP_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:30:491908Durchsuche

In PHP werden die meisten Zeitformate in UNIX-Zeitstempeln ausgedrückt, und UNIX-Zeitstempel basieren auf s (Sekunden) als kleinster Zeitmaßeinheit. Dies ist für einige Anwendungen nicht präzise genug, daher kann microtime() aufgerufen werden, um den aktuellen UNIX-Zeitstempel und die Anzahl der Mikrosekunden zurückzugeben. Der Prototyp dieser Funktion lautet wie folgt:

Code kopieren Der Code lautet wie folgt:

Mixed Microtime([bool get_as_float]); //Gibt den aktuellen UNIX-Zeitstempel und die Mikrosekunde zurück

Sie können dieser Funktion einen optionalen booleschen Parameter bereitstellen. Wenn dieser Parameter beim Aufruf nicht angegeben wird, gibt diese Funktion eine Zeichenfolge im Format „msec sec“ zurück. Dabei ist „sec“ die Anzahl der Sekunden seit der UNIX-Epoche und „msec“ der Mikroteil. Beide Teile der Zeichenfolge werden in Sekunden zurückgegeben. Wenn das Argument get_as_float angegeben ist und sein Wert TRUE entspricht, gibt microtime() eine Gleitkommazahl zurück. Vor dem Dezimalpunkt wird er immer noch im Zeitstempelformat ausgedrückt, während er nach dem Dezimalpunkt den subtilen Wert darstellt. Allerdings ist zu beachten, dass der Parameter get_as_float in der PHP5.0-Version neu hinzugefügt wurde, sodass dieser Parameter in Versionen vor PHP5 nicht zum direkten Anfordern einer Gleitkommazahl verwendet werden kann. Im folgenden Beispiel wird die zum Ausführen eines PHP-Skripts erforderliche Zeit durch zweimaligen Aufruf der Funktion microtime() berechnet. Der Code sieht so aus:
Code kopieren Der Code lautet wie folgt:

// Eine Klasse erstellen, die die Skriptlaufzeit berechnet
Klassen-Timer{
private $startTime = 0; //Speichern Sie die Zeit, zu der die Ausführung des Skripts beginnt (in Mikrosekunden gespeichert)
private $stopTime = 0; //Speichern Sie die Zeit, wenn die Ausführung des Skripts endet (speichern Sie in Mikrosekunden)

//Aufruf am Anfang des Skripts, um den Mikrosekundenwert der Skriptstartzeit
zu erhalten Funktion start(){
$this->startTime = microtime(true); //Weisen Sie die erhaltene Zeit dem Mitgliedsattribut $startTime
zu }
//Am Ende des Skripts den Mikrosekundenwert der Skriptendzeit
verwenden Funktion stop(){
$this->stopTime = microtime(true); //Weisen Sie die erhaltene Zeit dem Mitgliedsattribut $stopTime
zu }
//Den Unterschied zwischen den beiden Erfassungszeiten im selben Skript zurückgeben
Funktion ausgegeben(){
//Nach der Berechnung runden Sie 4 auf 5, behalten Sie 4 Ziffern bei und geben Sie
zurück return Round(($this->stopTime-$this->startTime),4);
}
}

$timer= new Timer();
$timer->start(); //Rufen Sie diese Methode auf, wenn die Ausführung der Skriptdatei beginnt
usleep(1000); //Themeninhalt des Skripts, hier können Sie als Beispiel eine Millisekunde lang schlafen
$timer->stop(); //Rufen Sie diese Methode am Ende der Skriptdatei auf

echo „Es hat gedauert“.$timer->spent().““;

?>

Deklarieren Sie im obigen Skript eine Timer-Klasse, die zur Berechnung der Skriptausführungszeit verwendet wird. Sie müssen die Methode start() in dieser Klasse zu Beginn der Skriptausführung aufrufen, um den Zeitpunkt zu ermitteln, zu dem die Ausführung des Skripts beginnt. Und rufen Sie die stop()-Methode in dieser Klasse am Ende der Skriptausführung auf, um den Zeitpunkt zu ermitteln, zu dem das Skript endet. Durch Zugriff auf die spend()-Methode in dieser Klasse können Sie dann die zum Ausführen des Skripts erforderliche Zeit ermitteln.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn