Temps d'execution (bis et plus simple)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 995 fois - Téléchargée 30 fois

Contenu du snippet

pas de moquerie c'est la premiere source que je pose.

Source / Exemple :


<?
//premiere fonction qui renvoie un temps unix plus les millisecondes (1030575023.8341)
function getmicrotime(){
	list($msec,$utime)=explode(" ",microtime());
	return($utime+$msec);
	}

//deuxieme fonction qui renvoie la difference
function process_time($time_start, $time_end){
	return substr(($time_end - $time_start),0,7);
	}

echo "t_start = ".$t_start = getmicrotime();

list($demomillisec,$demotemps) = explode(" ",microtime());

?>
<br><br>
fonction process_time[how to ;-)]:
<br><br>
function getmicrotime(){
<br>
	list($msec,$utime)=explode(" ",microtime());
<br>
	return($utime+$msec);
<br>
	}
<br>
function process_time($time_start, $time_end){
<br>
	return substr(($time_end - $time_start),0,7);
<br>
	}
<BR><br>
Voila le temps renvoyé par microtime(); --><? echo microtime(); ?> qui est toujours en deux parties :
<br>
la valeur en milliseconde de la seconde courante ---> <? echo $demomillisec ?>
<br>
et le temps mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT) que l'on peut aussi avoir avec la fonction time() ---> <? echo time();?>
<br><br>
list($var1,var2) permet d'assigner une série de variables en une seule ligne.
<br>
elle va nous permettre de récuperer le resulat de explode() dans deux variables<br>
$msec --> <?echo $demomillisec; ?><br>
$utime --> <? echo $demotemps; ?>
<br><br>
explode sert à "exploser" une chaine suivant un argument(caractere,chaine,expressions regulieres)
<br>
ici c'est un espace " " car microtime() renvoie les données séparées par un espace
<br>
c'est pourquoi list() n'as que deux arguments car on aura deux retours de données.
<br><br>
return($utime+$msec);
<br>
attention le temps unix sera un entier alors que les millisecondes seront à virgules flottantes
<br>
on peut aussi faire ca pour convertir les valeurs sur le meme type mais ca change rien (du au php)
<br>
return((float)$utime+(float)$msec);
<br>
on retourne le resultat de l'addition à la variable qui a demande le temps $temps1 = getmicrotime();
<br><br>
pour finir process_time demande deux arguments un debut et une fin et retourne la soustration de la fin et du debut de la mesure du temps.
<br>
la chaine retourné est modifie par substr() qui va renvoyer un partie de la chaine et demande trois arguments 
<br><br>
la chaine à traiter,  
<br>
le debut (attention 0 vaut le premier caractere)
<br>
la fin (facultatif si ommis renvoie le reste) ici 7 donne 5 chiffres aprés la virgule car 0 vaut un caractere et . en vaut un de plus.
<br><br>
quelques resultats à chaud
<br>
<?
echo "temps 1 = ".$t1 = getmicrotime();
echo "<br>";
echo "temps 2 = ".$t2 = getmicrotime();
echo "<br>";
echo "temps de traitement entre temps 1 et temps 2 = ".$proc = process_time($t1,$t2);
?>
<br><br>
vous avez peut etre vu t_start en haut de la page !!!!
<br><br>
<?
echo "temps entre t_start et temps 1 = ".$proc = process_time($t_start,$t1);
echo "<br>";
echo "temps entre t_start et temps 2 = ".$proc = process_time($t_start,$t2);
echo "<br>";
?>
<br>
voila une fonction modulable qui permet d'etre incluse sans probleme
<br>
pour ma part les deux fonctions sont dans un fichiers "librairies" j'inclus le fichier,
<br>
je lance la variable demande de temps debut et
<br>
à la fin de la page j'inclus un autre fichier qui contient le pieds de page,
<br>
la variable de demande de temps fin et la variable qui appelle le calcul.
<br><br>
t_end
<br><br>
<?
$t_end = getmicrotime();
echo "temps de generation de cette page ".$proc = process_time($t_start,$t_end);
?>

Conclusion :


Voila vous pouvez lire ou copier/coller et mettre sur un serveur et executer parce qu'un beau dessin,etc,etc,....et que vous le valez bien !!!
Pour ceux qui veulent s'exercer aux conversion de date, vous devriez pouvoir me dire la date a la milliseconde pres a laquelle j'ai rédigé ces quelques lignes ;-)
pas de merci, pas d'update, pas de bug c'est pret à l'emploi

A voir également

Ajouter un commentaire Commentaire
Messages postés
15
Date d'inscription
samedi 13 avril 2002
Statut
Membre
Dernière intervention
28 avril 2003

euh pour ceux qui aurait pas compris il y as que les deux premieres fonctions qui sont interressantes le reste c'est un petit tutorial que j'ai fait pour m'amuser et pour montrer que ca marche. promis je fais mieux la prochaine fois.

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.