Originariamente inviato da emanueledg
Questo vuol dire che se a monte dello script, prima di qualsiasi definizione delle classi e quant'altro inserisco:
Codice PHP:
<?php
$start_parsing = microtime(1);
// definizione delle classi...
$t1 = microtime(1);
?>
il timestamp associato a quella variabile non sarà mai quello dell'inizio del parsing, ma sempre quello di inizio dell'esecuzione dello script, infatti
$t1 - $start_parsing è sempre zero.
Qualcuno ha esperienza in merito?
E' 0 perche' fai i calcoli sbagliati.
la differenza tra due chiamate a microtime() su una macchina decente sara' nell'ordine di 10^-4 ms, ma non sara' mai 0.
Tu chiami microtime(1) (quindi richiedi che te lo restituisca in float: sec,msec) che ti fa un arrotondamento ai msec, per il semplice motivo del limite delle cifre dei float sul tuo sistema a 32 o 64 bit.
Per quanto riguarda il resto, io la misurazione la faccio in 2 modi:
1. Se devo far vedere all'utente la solita frase "processato in x secondi", uso i soliti metodi, chi se ne frega della precisione
2. Se mi serve misurare con precisione il tempo di esecuzione di uno script tenendo in considerazione il tempo del parser, etc, faccio semplicemente da bash un: time php script.php 
ad esempio sul tuo script:
Codice PHP:
<?php
$start_parsing = microtime(1);
sleep(1);
$t1 = microtime(1);
echo $t1-$start_parsing."\n";
?>
da' il risultato
codice:
# time php a.php
1.00112819672
real 0m1.040s
user 0m0.020s
sys 0m0.016
da dove risulta un overhead di 39ms.