Tema: miscelaneo. PreGunta: Como puedo medir el tiempo de ejecucion de mi script?. Respuesta: Puedes usar esta class!
introduccion:
El otro dia queria medir cuanto se demoraba en cargar una
pagina que estaba haciendo en PHP y luego de investigar un
poco decidi que lo mejor seria hacer un par de funciones para
calcular esto. Pero como las Classes estan de moda, mejor lo hice
en forma de clase y salio pretty.
Asi que aqui se los dejo, seguro que les servira para ponerlo en alguna pagina por ahi.
Código PHP:
<?php
/*
Class PHP que simula un cronometro, para medir el tiempo
de carga de una pagina, por ejemplo.
Toma el tiempo desde el momento que es instanciado (new cronometro())
y dispone de un metodo para "parar" el cronometro y devolver el tiempo
desde la creacion de la instancia hasta que se invoca este metodo.
Autor: e-milio
*/
Class cronometro {
var $comienzo;
// me devuelve un tiempo en segundos y milisegundos
function _getmicrotime() {
list($_milisegundos, $_segundos) = explode(" ", microtime());
return ((float)$_milisegundos + (float)$_segundos);
}
// constructor cronometro
function cronometro() {
$this->comienzo = $this->_getmicrotime();
return true;
}
// para el cronometro y devuelve el tiempo
// se puede dar una salida formateada a traves de los parametros.
//
// Si $formatear esta a verdadero entonces devolvera cuantos segundos
// se demoro con $nroDecimales decimales (milisegundos).
function stop($formatear = false, $nroDecimales = 0) {
$_tiempo = $this->_getmicrotime() - $this->comienzo;
return ($formatear) ? number_format($_tiempo, $nroDecimales, ',', '.') : $_tiempo;
}
}
?>
Entonces, para utilizar esto, puedes copiar este codigo y ponerlo
en algun archivo independiente (para que lo uses como include
cuando lo necesites)
yo lo hago de esta manera:
Código PHP:
<?php
// aca tengo escrita la clase
include "cronometro.php"
$casio = new cronometro();
// hacemos un bucle mas o menos que tome un tiempo, si no
// se nota mucho, podemos subir a mas de 10000
// (sin exagerar eh? xD)
for ($i = 1 ; $i <= 10000 ; $i++)
{
// hacer nada
}
echo "segun mi reloj, este script se demoro " . $casio->stop(true, 2) . " segundos en su ejecucion";
?>
EOF