Aller au contenu

temps d'execution d'un script


Sujets conseillés

Posté

Bonjour,

Je cherche à calculer (puis afficher) le temps d'execution d'une requete.

J'ai trouvé des bouts de script à gauche et à droite, mais je n'arrive pas à les faire fonctionner :

// debut du stript

list($msec0, $sec0) = explode(' ', microtime());

/*la requete et le script*/

// fin du script

list($msec1, $sec1) = explode(' ', microtime());

$duree=($sec1+$msec1)-($sec0+$msec0);

$duree est toujours à 0 :boude:

si quelqu'un voit ou est l'erreur, par avance merci.

Posté

Ton script marche très bien chez moi, peut être arrondi-tu le résultat avant l'affichage et comme celui-ci est très petit tu te retrouve avec 0.

Essaye de multiplier $duree par 1000 pour avoir le résultat en milliseconde plutôt qu'en seconde.

Posté

Bonjour et merci,

Effectivement, tu as raison, j'ai multiplié par 10000 et j'arrive à +/- 90.

Cela veut dire 9 milisecondes pour un script de 300 lignes ? moins d'un centieme de seconde ??? c'est incroyablement rapide !

je dis ça, mais je ne connais pas grand chose à l'informatique, alors c'est peut être totalement banal. Mais ça m'inpressionne.

T'est sur qu'en multipliant par mille, ça donne des milisecondes :wub:

En tout cas mille merci.

Ps : Je en comprend pas pourquoi, mais sur ce forum, je ne reçois jamais les notifications de réponse; alors que l'option est cochée (Actuellement vous recevez les notifications email lors de réponses.), et qie mon adresse mail est ok.

Serait-ce mon fai qui bloque ?

Posté
T'est sur qu'en multipliant par mille, ça donne des milisecondes  :wub:

<{POST_SNAPBACK}>

Pour t'en concaincre place un sleep(10); à la place de tes 300 lignes de code (cela aura pour effet de faire une pause de 10 secondes) tu remarquera que le temps que tu récupère dans $duree correspond ;)

PS: pour les notifications je ne sais pas, mais un modérateur aura surement la réponse ;)

Posté

En fait, la doc donne un bon exemple de fonction pour déterminer le temps d'execution d'un script. Il faut voir à la fonction 'microtime' :

<?php
function getmicrotime(){
   list($usec, $sec) = explode(" ",microtime());
   return ((float)$usec + (float)$sec);
   }

$time_start = getmicrotime();
   
for ($i=0; $i < 1000; $i++){
   //do nothing, 1000 times
   }

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Ne fait rien pendant $time secondes";
?>

Tu peux remplacer les ligne :

for ($i=0; $i < 1000; $i++){

//...

}

par la fonction 'sleep', comme l'explique Country ;)

Anonymus.

Posté

Merci à tous les deux, tout est donc OK... mais toujours pas de notification ! Pas grave, ça me donne une occasion de venir sur cet excellent forum.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...