Mesurer la vitesse d'exécution du code

<?php
$start = microtime(true);
echo "start:$start<br>";

// db->execute($sql);

$end = microtime(true);
echo "end:$end<br>";
$diff = $end - $start;
$duree = number_format($diff,3);
echo "duree:$duree microsecondes<br>";
?>
Les microsecondes c'est bien joli mais peu utile.
Le code ci-dessous transforme -selon sa durée- la durée en mirosecondes en string:
145ms
ou 35s
ou 1mn 25s
ou 1h 25mn 22s
<?php
$start = microtime(true);
...
$diff = microtime(true) - $start;
$temps  = $diff*1000;  // en millisecondes
$origine = $temps; // conserve la valeur initiale

$h  = intdiv($temps, 3600000);
$temps %= 3600000;

$mn = intdiv($temps, 60000);
$temps %= 60000;

$s  = intdiv($temps, 1000);
$ms = $temps % 1000;

if ($origine < 1000)
	$duree = $ms.'ms'; // Moins d'une seconde : on affiche uniquement les millisecondes
else {
	$duree = '';
	if ($h > 0) $duree .= $h.'h ';
	if ($mn > 0 || $h > 0) $duree .= $mn.'mn ';
	if ($s > 0 || $mn > 0 || $h > 0) $duree .= $s.'s';
}
echo "Fin du script dimanche soir. Durée d'exécution : $duree";
?>