E' 0 perche' fai i calcoli sbagliati.Originariamente inviato da emanueledg
Questo vuol dire che se a monte dello script, prima di qualsiasi definizione delle classi e quant'altro inserisco:
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.Codice PHP:<?php
$start_parsing = microtime(1);
// definizione delle classi...
$t1 = microtime(1);
?>
Qualcuno ha esperienza in merito?
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:
da' il risultatoCodice PHP:<?php
$start_parsing = microtime(1);
sleep(1);
$t1 = microtime(1);
echo $t1-$start_parsing."\n";
?>
da dove risulta un overhead di 39ms.codice:# time php a.php 1.00112819672 real 0m1.040s user 0m0.020s sys 0m0.016


Rispondi quotando