Concrètement, le but est de relever plusieurs fois l'heure précise à la milliseconde puis par soustraction, calculer le temps d'exécution de chacune des parties du script.
Depuis PHP5, la fonction microtime() retourne un timestamp complet. Par exemple, à ce moment précis, microtime(true); retourne 1288098634.5498 soit 15:10:34;
Temps d'exécution d'un script PHP
<?php
/**
* Calculer le temps d'execution d'un script
*/
// relever le point de départ
$timestart=microtime(true);
/**
* Execution du code PHP:
* - requete SQL,
* - génération du code HTML,
* - ...
*/
//Fin du code PHP
$timeend=microtime(true);
$time=$timeend-$timestart;
//Afficher le temps d'éxecution
$page_load_time = number_format($time, 3);
echo "Debut du script: ".date("H:i:s", $timestart);
echo "<br>Fin du script: ".date("H:i:s", $timeend);
echo "<br>Script execute en " . $page_load_time . " sec";
?>
Debut du script: 14:44:17
Fin du script: 14:44:18
Script execute en 0.736 sec
Mesurer le temps de chargement d'une page HTML
Pour estimer le temps de chargement d'une page HTML, un traceur est placé en début de script puis le temps de chargement est obtenu avec la différence du traceur final.<?php
/**
* Mesurer le temps de chargement d'une page HTML
*/
// relever le point de départ
$timestart=microtime(true);
/**
* Charger la page index du site Fobec.com
*/
file_get_contents('http://www.fobec.com');
//Fin du code PHP
$timeend=microtime(true);
$time=$timeend-$timestart;
//Afficher le temps de chargement
$page_load_time = number_format($time, 3);
echo "Debut du chargement: ".date("H:i:s", $timestart);
echo "<br>Fin de reception: ".date("H:i:s", $timeend);
echo "<br>Page chargee en " . $page_load_time . " sec";
?>
Exemple de résultat
Debut du chargement: 14:50:54
Fin de reception: 14:50:55
Page chargee en 0.781 sec
Lorsque le projet est plus complexe et comporte des appels vers des scripts inclus, la fonction microtime() devra etre placée soit dans un seul script ou alors la valeur du temps initial est transmise au prochain script.