Connaître le temps d’exécution d’un code php avec microtime()

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 578 fois - Téléchargée 27 fois

Contenu du snippet

Ce bout de code permet de calculer le temps d’exécution d’un script PHP…on prend le temps au début (variable btime) et a la fin (variable ctime) pour ensuite les rendre lisible…car microtime() renvois une valeur du genre 0.xxxxxxxx xxxxxxxxxx qui n’est pas utilisable mathématiquement. Donc on prend le bloc de chiffre situé à la fin (qui est un entier)…qu’on additionne à celui du début (qui est une fraction) pour obtenir un chiffre qui peut être placé dans une opération arithmétique. Alors on soustrait btime de ctime pour avoir atime qui est coupé pour ne posséder que 6 chiffres à la suite de la virgule.
On vérifie que le chiffre avant la virgule ne soit pas supérieur ou égale à 2 pour placer "secondes" ou "seconde" selon le cas.

Dans 282 ans et demi ce code ne fonctionnera plus car l’entier n’aura plus 14 chiffres… mais bien 15, car il représente le nombre de secondes écoulées depuis le 1er janvier 1970… mais je doute que ce problème soit à prendre en compte

Source / Exemple :


<?php
$btime=microtime();

//Vous placé ici le code à 'chronométrer'

$ctime=microtime();

$dtime=substr($btime, 15, 6);
$etime=substr($ctime, 15, 6);
$btime=substr($btime, 0, 8);
$ctime=substr($ctime, 0, 8);

$btime=$btime+$dtime;
$ctime=$ctime+$etime;

$atime=$ctime-$btime;

$atime=substr($atime, 0, 8);
$ftime=substr($atime, 0, 1);

if($ftime <= "1"){$stime="seconde";}else{$stime="secondes";}
echo"<center> Script PHP exécuté en $atime $stime</center>";
?>

Conclusion :


Si vous voyez quelque chose de pas correcte, dites le moi :)

A voir également

Ajouter un commentaire

Commentaires

cs_scullder
Messages postés
36
Date d'inscription
vendredi 28 mars 2003
Statut
Membre
Dernière intervention
12 novembre 2004
-
tu peux aussi utiliser la fonction explode, ça simplifierait beaucoup.

$microtime = explode(" ",microtime());
$microtime1 = $microtime[0] + $microtime[1];

$microtime1 aura une valeur dans le genre "2124545121,2121256465" et tu n'auras plus de problèmes dans 282 ans :)
Taka_s_tiger
Messages postés
32
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
5 juillet 2006
-
oui...j'ai fait ce script en quelque minutes...sans me possé trop de question...j'en avais besion pour testé une petite chose...je me suis dit qu'il pourait servir a quelque'un d'autre...sinon je n'ai pas fait bien attention de le simplifier puisqu'il fonctionnai déja ;)
libre à chaqu'un d'en faire ce qu'il veut
cs_cbibi
Messages postés
112
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
11 novembre 2007
-
Deja passer ...
DarkBoss
Messages postés
154
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
12 décembre 2008
-
moi perso a la fin je ne mettrai pas temps de chiffre
g remplacerai le dernier echo par :

@list($seconde, $micro) = explode(".", $atime);
echo "<center> Script PHP exécuté en ".$seconde.",".$micro[0].$micro[1]." $stime
";

ou alors laisser un choix avec un truc du style if($action=="detail") etc....
+++
Taka_s_tiger
Messages postés
32
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
5 juillet 2006
-
DarkBoss> c'est une idée

cbibi> ça je le sais...mais ne me dit pas que je suis le premier à envoyer quelque chose dont le concept est déja vu ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (Taka_s_tiger)