Je veux savoir combien de millisecondes une boucle PHP prend pour s'exécuter.
Je connais la structure d'un algorithme générique, mais je ne sais pas comment l'implémenter en PHP:
Begin
init1 = timer(); // where timer() is the amount of milliseconds from midnight
the loop begin
some code
the loop end
total = timer() - init1;
End
Réponses:
Vous pouvez utiliser la
microtime
fonction pour cela. De la documentation :Exemple d'utilisation:
la source
microtime(true)
si vous voulez faire des calculs avec la valeur de retour.get_as_float
astrue
) vous donnera des résultats en quelques secondes , selon la documentation PHP.get_as_float
c'est le castrue
,microtime()
retourne la valeur représentant les secondes ...$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
(Plus d'informations dans une réponse ci-dessous .)Vous pouvez utiliser
microtime(true)
les manières suivantes:Mettez ceci au début de votre fichier php:
// votre code de script va ici
Mettez ceci à la fin de votre fichier php:
Il en résultera votre résultat
minutes
.la source
Vous pouvez utiliser à
REQUEST_TIME
partir du$_SERVER
tableau superglobal. De la documentation :De cette façon, vous n'avez pas besoin d'enregistrer un horodatage au début de votre script. Vous pouvez simplement faire:
Ici,
$time
contiendrait le temps écoulé depuis le début du script en secondes, avec une précision en microsecondes (par exemple,1.341
pendant 1 seconde et 341 microsecondes)Plus d'informations:
Documentation PHP :
$_SERVER
variables etmicrotime
fonctionla source
$start = $_SERVER["REQUEST_TIME_FLOAT"]; $myscript = microtime(true); $bootstrap = $myscript - $start; ...do stuff ...; $myscripttime = microtime(true) - $myscript;
$myscripttime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
à la fin de votre script sans avoir à enregistrer un horodatage au début.$time
contiendra la différence en secondes , pas en microsecondes .1.1
équivaut à 1 seconde + 100 microsecondes.Créez le fichier loadtime.php
Au début de votre script, après avoir
<?php
écritinclude 'loadtime.php'; $loadtime=new loadTime();
Lorsque la page est chargée à la fin, il sera écrit "Chargé en x secondes"
la source
</html>
balise de fermeture qui n'est pas validela source
Voir microtime () .
la source
Voici une fonction qui chronomètre l'exécution de n'importe quel morceau de code PHP, un peu comme le module timeit de Python: https://gist.github.com/flaviovs/35aab0e85852e548a60a
Comment l'utiliser:
Résultat:
Avertissement: je suis l'auteur de ce Gist
EDIT: timeit est maintenant un projet séparé et autonome sur https://github.com/flaviovs/timeit
la source
Vous avez la bonne idée, sauf qu'un timing plus précis est disponible avec le microtime () .
Si ce qui se trouve à l'intérieur de la boucle est rapide, il est possible que le temps écoulé apparent soit nul. Si c'est le cas, enroulez une autre boucle autour du code et appelez-le à plusieurs reprises. Assurez-vous de diviser la différence par le nombre d'itérations pour obtenir une fois par fois. J'ai profilé du code qui a nécessité 10 000 000 d'itérations pour obtenir des résultats de synchronisation cohérents et fiables.
la source
Je pensais partager la fonction que j'avais mise en place. J'espère que cela peut vous faire gagner du temps.
Il était à l'origine utilisé pour suivre le timing d'un script texte, donc la sortie est sous forme de texte. Mais vous pouvez facilement le modifier en HTML si vous préférez.
Il fera tous les calculs pour vous pour combien de temps a été passé depuis le début du script et à chaque étape. Il formate toute la sortie avec 3 décimales de précision. (Jusqu'à quelques millisecondes.)
Une fois que vous l'avez copié en haut de votre script, il vous suffit de placer les appels de la fonction recordTime après chaque morceau que vous souhaitez chronométrer.
Copiez ceci en haut de votre fichier de script:
Pour suivre le temps qui passe, faites simplement:
Par exemple:
Donne une sortie comme ceci:
J'espère que cela aide quelqu'un!
la source
Voici une méthode très simple et courte
la source
si vous souhaitez afficher ce temps en secondes:
la source
Voici une implémentation qui retourne des fractions de seconde (soit 1,321 seconde)
la source
Voici mon script pour mesurer le temps moyen
la source
Vous pouvez trouver le temps d'exécution en seconde avec une seule fonction.
la source