Pensé en compartir la función que armé. Esperemos que pueda ahorrarle tiempo.
Originalmente se usó para rastrear el tiempo de un script basado en texto, por lo que la salida está en forma de texto. Pero puede modificarlo fácilmente a HTML si lo prefiere.
Hará todos los cálculos por usted durante cuánto tiempo ha pasado desde el inicio del guión y en cada paso. Formatea toda la salida con 3 decimales de precisión. (Abajo a milisegundos)
Una vez que lo copie en la parte superior de su secuencia de comandos, todo lo que debe hacer es colocar las llamadas a la función recordTime después de cada pieza que desee cronometrar.
Copie esto en la parte superior de su archivo de script:
$tRecordStart = microtime(true);
header("Content-Type: text/plain");
recordTime("Start");
function recordTime ($sName) {
global $tRecordStart;
static $tStartQ;
$tS = microtime(true);
$tElapsedSecs = $tS - $tRecordStart;
$tElapsedSecsQ = $tS - $tStartQ;
$sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
$sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
echo "//".$sElapsedSecs." - ".$sName;
if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
echo "\n";
$tStartQ = $tS;
}
Para rastrear el tiempo que pasa, solo haz:
recordTime("What We Just Did")
Por ejemplo:
recordTime("Something Else")
//Do really long operation.
recordTime("Really Long Operation")
//Do a short operation.
recordTime("A Short Operation")
//In a while loop.
for ($i = 0; $i < 300; $i ++) {
recordTime("Loop Cycle ".$i)
}
Da resultados como este:
// 0.000 - Start
// 0.001 - Something Else In 0.001s
// 10.779 - Really Long Operation In 10.778s
// 11.986 - A Short Operation In 1.207s
// 11.987 - Loop Cycle 0 In 0.001s
// 11.987 - Loop Cycle 1 In 0.000s
...
// 12.007 - Loop Cycle 299 In 0.000s
¡Espero que esto ayude a alguien!