Tema: FAQ's de PHP
Ver Mensaje Individual
  #75 (permalink)  
Antiguo 20/06/2003, 17:20
Avatar de e-miliox
e-miliox
 
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
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 $i <= 10000 $i++)
{
   
// hacer nada
}

echo 
"segun mi reloj, este script se demoro " $casio->stop(true2) . " segundos en su ejecucion";

?>


EOF
__________________
=PoWeReD By MySeLf!=

Última edición por Cluster; 16/08/2003 a las 09:57