PHP:¿Cómo puedo medir el tiempo de ejecución de mi script?
De Foros del Web
Puedes usar esta class!
Introducción:
El otro día queria medir cuánto se demoraba en cargar una página que estaba haciendo en PHP y luego de investigar un poco decidí que lo mejor sería hacer un par de funciones para calcular esto. Pero como las Classes estan de moda, mejor lo hice en forma de clase y salió pretty.
Así que aquí se los dejo, seguro que les servirá para ponerlo en alguna página 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 código y ponerlo en algún archivo independiente (para que lo uses como include cuando lo necesites)
yo lo hago de esta manera:
Código PHP:
<?php // acá 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 más de 10000 // (sin exagerar eh? xD) for ($i = 1 ; $i <= 10000 ; $i++) { // hacer nada } echo "según mi reloj, este script se demoró " . $casio->stop(true, 2) . " segundos en su ejecucion"; ?>
EOF
--e-miliox 20 Jun 2003
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
