La fonction GetTimeOfday renvoie les informations de temps de niveau microseconde de l'heure actuelle, y compris deux parties: secondes et microsecondes. Il renvoie un tableau associatif avec la structure suivante:
array(
"sec" => Nombre de secondes,
"usec" => 微Nombre de secondes,
"minuteswest" => Fuseau horaire actuel etUTCDécalage horaire,
"dsttime" => Signe d'heure d'été
)
Lors du calcul du décalage horaire, nous nous concentrons principalement sur les deux valeurs de SEC et USEC .
L'idée est:
Appelez GetTimeOfday (True) en deux points dans le temps pour obtenir l'horodatage (cette fois renvoie le numéro de point flottant, secondes + précision microseconde).
Soustrayez l'heure de début en soustrayant l'heure de début pour obtenir la différence exacte en secondes, en prenant en charge le niveau de microseconde après le point décimal.
<?php
// Obtenez l'heure de début
$start = gettimeofday(true);
// Opération de temps de simulation
usleep(500000); // 500millisecondes
// Obtenez l'heure de fin
$end = gettimeofday(true);
// Calculez le décalage horaire,Unités en quelques secondes,Prend en charge les microsecondes
$elapsed = $end - $start;
echo "Temps d'exécution:{$elapsed} Deuxième\n";
?>
Ce code sortira environ 0,5 seconde, car nous avons utilisé Usleep (500000) pour simuler un délai d'une demi-seconde.
En plus d' obtenir un temps de temps (vrai) renvoie les numéros de point flottants, vous pouvez également utiliser getTimeOfday () pour renvoyer le tableau et calculer l'ajout de secondes et microsecondes par vous-même:
<?php
// Obtenez l'heure de début,Formulaire
$start = gettimeofday();
// Opération de temps de simulation
usleep(200000); // 200millisecondes
// Obtenez l'heure de fin
$end = gettimeofday();
// Calculez le décalage horaire(Deuxième + 微Deuxième)
$elapsed = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "Temps d'exécution:{$elapsed} Deuxième\n";
?>
Cette méthode convient au traitement plus flexible des horodatages.
Si vous devez calculer le temps de réponse d'une demande HTTP, vous pouvez combiner Curl et GetTimeOfday :
<?php
// demanderURL(utilisergitbox.netComme nom de domaine)
$url = "https://gitbox.net/api/example";
// initialisationcurl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Enregistrez l'heure de début
$start = gettimeofday(true);
// 执行demander
$response = curl_exec($ch);
// Enregistrer l'heure finale
$end = gettimeofday(true);
// fermeturecurl
curl_close($ch);
// Calcul qui prend du temps
$elapsed = $end - $start;
echo "demander {$url} prend du temps:{$elapsed} Deuxième\n";
?>
Cela obtiendra le processus exact exact d'appel de l'interface gitbox.net .
GetTimeOfday (True) Renvoie la représentation des points flottants de l'heure actuelle, secondes + microsecondes, facile à utiliser.
En calculant la différence entre deux points dans le temps, il peut être précis au niveau des microsecondes.
Convient pour les tests de performances, les statistiques du temps d'exécution du code et demandez une analyse chronophage.
Si vous utilisez bien GetTimeofday , votre calcul de temps PHP sera plus précis et plus efficace.