Cómo calcular el tiempo de ejecución de un proceso con PHP

El otro día creé un script con PHP que restauraba varias tiendas de demostración en un servidor alojado en Holanda y el proceso tardaba varios minutos. En ese momento me di cuenta que me interesaba conocer el tiempo que tardaba en ejecutarse por temas de rendimiento y limitación de parámetros del servidor.

De entrada parece complicado pero es más sencillo de lo que parece. Por ese motivo entre otros, me interesa compartirlo con todos vosotros y espero que sea de gran utilidad.

Para conseguirlo, tan solo tienes que capturar o guardar en una variable el tiempo de inicio con microtime() y al final de la ejecución calcular la diferencia entre el tiempo de inicio y el tiempo de fin. Después tan solo hacer unos cálculos para sacar las horas, minutos y segundos de ejecución del proceso.

La función microtime() de PHP devuelve la fecha Unix actual con micro segundos. Usamos esta función porque retorna un número entero que luego podremos restar. Esto lo vas a ver más claro con el ejemplo que hemos preparado.

Debes saber que la ejecución del código es secuencial. De esta forma al principio de todo guardamos el tiempo de inicio en micro segundos con la función microtime():

<?php
$start_time = microtime(true);
?>

En el ejemplo en funcionamiento el proceso consiste en dormir la ejecución por 15 segundos. Esto lo conseguimos con la función sleep() de PHP:

<?php
sleep(15);
?>

El código anterior es el que debes sustituir por el código que quieres analizar el tiempo que tarda en ejecutarse.

Al final de todo agrega lo siguiente:

<?php
$end_time = microtime(true);
$duration = $end_time - $start_time;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60; 
echo "Tiempo empleado para cargar esta pagina: <strong>" . $hours.' horas, '.$minutes.' minutos y '.$seconds.' segundos.</strong>';
?>

Este código obtiene el tiempo final de ejecución en micro segundos. Calcula la duración con una simple resta del tiempo de fin y el tiempo de inicio. Finalmente calcula las horas, minutos y segundos con su fórmula habitual.

El tiempo empleado para la ejecución se muestra al final. Puedes ver las horas, minutos y segundos que tarda el proceso en ejecutarse completamente.

Ver demo Descargar

Autor
Escrito por Jose Aguilar - Experto programador Prestashop y Wordpress.
Te ha servido? Valora esta entrada!
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (No hay votos)
Cargando…
Comparte en las redes sociales

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.