Calcul du temps d'exécution

Signaler
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
je cherchais à vérifier un code pour calculer le temps d'exécution d'une page ou d'une requête (sans utiliser un code très ou trop compliqué) et je n'ai pas trouvé grand chose, en fait je souhaite mettre à l'épreuve de vos critiques ma fonction suivante :

// Fonction qui calcule la différence entre 2 temps
function DiffTime($microtime1, $microtime2)
{
// on sépare les secondes et les millisecondes
list($micro1, $time1) = explode(' ', $microtime1);
list($micro2, $time2) = explode(' ', $microtime2);

$time1 += $micro1;
$time2 += $micro2;

// on calcule le nombre de secondes qui séparent les 2
$time = $time2 - $time1;
// Et on renvoie le tout en utilisant la fonction native "number_format()" pour l'arrondi
return ($time = number_format($time,2));
}

j'attends vos commentaires et/ou vos critiques (mais pas trop sévères)
merci d'avance.

4 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
En plus simple :
<?php
// Début de script :
$time = microtime(true);

// Reste du script...
// ...
// ...

// Fin de script :
$exectime = microtime(true) - $time;
echo $exectime;

?>

Pas besoin de bien plus :)
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Déplacé dans le bon forum












<hr size="2" />




VC# forever
Messages postés
46
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
13 septembre 2010

FhX, merci de ta réponse, Mais il me semblait que microtime retournait une chaine "millisecondes, secondes" et donc le but de ma fonction était de remettre cette chaine dans l'ordre suivant : secondes, millisecondes, afin d'avoir un nombre sur lequel on peut faire un calcul "horaire".
Or je pense que le code que tu viens de me donner me restitue un résultat sous forme d'une chaine "millisecondes, secondes" alors que je voudrais le lire normalement comme un temps classique, exprime dans l'ordre logique d'abord les secondes et ensuite les millisecondes.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"Or je pense"
Bah si t'es pas sur, tu vérifies :

=> [ PHP5 ]
mixed microtime ( [bool get_as_float] )

Si get_as_float est fourni et vaut TRUE, microtime() retourne un nombre à virgule.
Note : Le paramètre get_as_float a été ajouté en PHP 5.0.0.

PHP4.2 étant un peu vieillot maintenant, serait temps de passer à PHP5.

Voila l'explication en entier !