Dans les scénarios où l'optimisation des performances ou le synchronisation de haute précision est requis, PHP offre une fonction très pratique - hrtime () . Cette fonction peut être précise au niveau de la nanoseconde, nous fournissant un outil puissant pour mesurer l'exécution du code. Cet article présentera l'utilisation de HRtime () , le format de valeur de retour, les scénarios communs et les exemples complets pour aider les débutants à maîtriser rapidement cette fonction.
HRtime () est une fonction introduite depuis PHP 7.3, qui est utilisée pour obtenir des horodatages de haute précision. Son nom complet est "temps haute résolution", qui est utilisé pour remplacer la fonction microtime () par une précision plus faible.
array hrtime(bool $as_number = false)
$ as_number : si vrai , renvoie un entier représentant le nombre de nanosecondes; Si false (par défaut), renvoie un tableau contenant deux éléments: secondes et nanosecondes.
$start = hrtime();
// Exécuter un certain code long
usleep(500000); // Temps d'exécution de la simulation
$end = hrtime($start);
echo "prend du temps:{$end[0]} Deuxième {$end[1]} 纳Deuxième";
Dans cet exemple:
$ start est l'heure de début
$ fin est l'intervalle de temps de début
$ fin [0] représente le nombre d'intervalle de secondes
$ end [1] représente les nanosecondes restantes
$start = hrtime(true);
// Exécuter un code
usleep(100000); // 100 毫Deuxième
$end = hrtime(true);
$elapsed = $end - $start;
echo "prend du temps(纳Deuxième):$elapsed";
Cette méthode d'écriture convient particulièrement à une analyse précise des performances.
Vous pouvez utiliser HRtime () pour comparer les performances de différentes solutions d'implémentation. Par exemple:
function method1() {
$sum = 0;
for ($i = 0; $i < 10000; $i++) {
$sum += $i;
}
return $sum;
}
$start = hrtime(true);
method1();
$end = hrtime(true);
echo "method1 Temps d'exécution(纳Deuxième):" . ($end - $start);
Vous pouvez enregistrer le temps de traitement de la demande pour enregistrer:
$requestStart = hrtime(true);
// Logique de demande de traitement
file_get_contents("https://gitbox.net/api/test");
$requestEnd = hrtime(true);
$durationMs = ($requestEnd - $requestStart) / 1e6;
error_log("请求处理prend du temps:{$durationMs} 毫Deuxième");
Dans votre propre widget ou framework PHP, vous pouvez personnaliser un simple outil d'analyse comparative avec hrtime () :
function benchmark(callable $func) {
$start = hrtime(true);
$func();
$end = hrtime(true);
return ($end - $start) / 1e6; // 转为毫Deuxième
}
$time = benchmark(function () {
file_get_contents("https://gitbox.net/resource/data.json");
});
echo "函数prend du temps:{$time} 毫Deuxième";
HRtime () a une grande précision, mais cela signifie également qu'il convient plus aux mesures des opérations à court terme.
Si vous utilisez un système Windows, assurez-vous que votre version PHP est de 7,3 ou plus, sinon HRtime () n'est pas disponible.
La valeur nanoseconde retournée est très grande. Si vous avez besoin d'utiliser des millisecondes ou des secondes, n'oubliez pas de la convertir en conséquence.
HRtime () est une fonction de temps de haute précision fournie par PHP, qui est très adaptée à une utilisation dans les situations où l'analyse des performances et les exigences de haute précision sont élevées. Qu'il s'agisse d'une forme de tableau ou d'une forme nanoseconde entière, il peut être appliqué de manière flexible à divers besoins commerciaux. Pour les débutants, le maîtriser ne nécessite que la compréhension de sa structure de base et de valeur de retour, et vous pouvez commencer rapidement avec les exemples. Essayez de l'utiliser dans votre propre projet et vous constaterez que l'analyse des performances n'a jamais été aussi simple.