mesurer le temps écoulé entre les segments de code en PHP
De temps de temps en temps, j'aimerais être capable de mesurer le temps écoulé entre deux segments de code. C'est le seul à être en mesure de détecter les goulets d'étranglement dans le code et d'améliorer ce qui peut être amélioré.
Je souhaiterais créer une fonction telle que, lorsque la fonction est de travailler avec une variable globale qui fait écho le temps écoulé entre l'appel en cours et la dernière fois qu'il a été appelé.
De cette façon, vous pouvez l'utiliser plusieurs fois l'un après l'autre.
Et la fonction doit pouvoir être calculer les différences de fractions de secondes comme 0.1 sec ou 0,3 sec etc.
Un exemple serait sans doute expliquer cela beaucoup mieux.
echo time_elapsed();
//This echo outputs nothing cause this is the starting case.
//There is nothing to compare against.
//
//1st code section here
//
echo time_elapsed();
//This echo outputs 0.5 seconds.
//...which means there has been 0.5 seconds passed
//...since the last time time_elapsed() was fired
//
//2nd code section here
//
echo time_elapsed()
//This echo outputs 0.2 seconds
//
//3rd code section here
//
echo time_elapsed()
//This echo outputs 0.1 seconds etc
Ma question est ce que PHP utilitaires ( fonctions intégrées ) dois-je utiliser pour réaliser ce genre de sortie?
source d'informationauteur Average Joe | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Un débogueur comme XDebug/Zend Debugger peut vous donner ce type d'informations (et bien plus), mais c'est ici une allusion à la façon dont vous pouvez écrire une fonction comme ça:
Principalement la fonction microtime() est tout ce que vous besoin afin de faire les calculs de temps. Pour éviter une variable globale, j'utilise une variable statique dans l'écoulement de la fonction. Alternativement, vous pouvez créer une classe simple qui peut encapsuler les variables requises et de faire des appels à une méthode de la classe de suivre et de sortie les valeurs de temps.
De le premier exemple dans le doc phps:
Quelque chose le long de ces lignes devrait fonctionner:
D'autres facteurs affectent le calendrier de vos scripts. Exemple:
Même drew010 fonction (merci!), seulement ajouté de commentaires personnalisés et l'heure s'affiche en microsecondes (états-unis):
Exemple:
De sortie:
Source: http://php.net/manual/en/function.microtime.php#example-2568
Mon profilage des besoins en matière de développement sont couverts par ce petit mais puissant de la classe:
Le voir en action ici.
Il est destiné à être appelé par l'intermédiaire ultérieure
start(<tag>)
etstop(<tag>)
appels. Il produit un tableau avec les totalisées fois votre code passé dans les sections délimitée par les appels de start() et stop() avec les étiquettes correspondantes.start-stop séquences peuvent être imbriquées et peut être inscrit à plusieurs reprises, résumant ainsi le temps passé dans la section incluse.
Sa compacité assure le minimum d'impact sur les performances. Balise dynamique de création peut être utilisé pour laisser le programme à modifier ce qu'il surveille. Typiquement, cela est étendu avec de la sortie ou du stockage de fonctions.