Luego de realizar un script bastante complejo me di cuenta que estaba tardando bastante ya que por la naturaleza de la misma realizaba actualizaciones de base de datos y creación de nuevos archivos en el servidor, me entro una curiosidad de saber cuanto tiempo realmente estaba tardando en realizar todo.
Parece algo bastante complicado de realizar y consumo de recursos pero la verdad que no es así, es bastante sencillo y les paso a explicar como funciona.
Para poder realizar solo debes capturar en una variable el tiempo de inicio del script con esta función microtime() y al final de la ejecución del código calcular la diferencia de tiempo entre el inicio y el fin. Luego de eso solo queda realizar los cálculos para obtener las horas, minutos y segundos de ejecución del script.
Para destacar un poco la función microtime() de PHP solo devuelve la fecha Unix actual en micro segundos, es importante saber que se utiliza esta función en particular ya que retorna un numero en forma entero que luego lo único que hacemos es restar.
Como saben la ejecución en PHP es secuencial, de esta manera al comienzo de todo guardamos el tiempo de inicio.
<?php $inicio = microtime(true); ?>
En este ejemplo en particular utilizamos la función sleep() de PHP para dormir la ejecución del script por unos 10 segundos que serán suficientes para mostrar la teoría.
<?php sleep(10); ?>
El script completo quedaría de esta forma:
<?php #webdebe.xyz $inicio = microtime(true); sleep(10); $fin = microtime(true); $duracion = $end_time - $start_time; $horas = (int)($duracion/60/60); $minutos = (int)($duracion/60)-$horas*60; $segundos = (int)$duracion-$horas*60*60-$minutos*60; echo "Tiempo empleado para cargar esta pagina: <strong>" . $horas.' horas, '.$minutos.' minutos y '.$segundos.' segundos.</strong>'; ?>