Categorías destacadas
programacion php    
Artículo
0
¡votar!

 Tiempo de ejecución de una página

1 . La función microtime()
2 . Medir el tiempo de ejecución de la página

La función microtime()

La función time() es muy poco exacta para cierto tipo de tareas. Cuando necesitamos medir tiempos con una precisión menor al segundo tenemos que usar microtime().

microtime() devuelve una cadena que contiene dos números separados por un espacio. Al igual que time(), devuelve el número de segundos transcurridos desde el 1 de enero de 1970 a las 12 de la noche (uséase, las 00:00:00). Sin embargo, microtime() no devuelve sólo el número de segundos como un dato entero, sino que también da la parte decimal. El primer número que devuelve esta función sería esa parte decimal y el segundo la parte entera (equivalente a lo que devolvería time()).

Esto parece un poco lioso; intentaré aclararlo. Si convertimos ambas cifras a números y las sumamos, nos daría el número de segundos transcurridos desde el célebre 1 de enero, pero con parte decimal. Y esa parte decimal es la que necesitamos cuando queremos medir tiempos con precisión. Pongamos el siguiente código en una página PHP:

$m = microtime();
$t = time();
print("Los segundos (versión precisa) transcurridos son $m<br>");
print("Los segundos (versión entera) transcurridos son $t<br>");

Nos devolvería algo como:

Los segundos (versión precisa) transcurridos son 1037896550
Los segundos (versión entera) transcurridos son 0.07883300 1037896550

1037896550 son los segundos transcurridos desde el célebre 1 de enero de 1970. Si emplearamos la función date() para formatear el número:

print(date("h:i:s a l F j, Y", $t)."<br>");

Nos devolvería "05:37:22 pm Thursday November 21, 2002".

Medir el tiempo de ejecución de la página

Para poder hacer algo útil con microtime() tenemos que extraer los números de la cadena:

$comienzo = explode(" ", $m);
print("Los microsegundos son " . $comienzo[0] . "<br>");
print("Los segundos son " . $comienzo[1] . "<br>");

Podemos usar esta función para averiguar el tiempo que tarda el servidor en producir una página. Si al comienzo de la misma hemos colocado eso de $m = microtime() al final de la misma escribiremos:

$comienzo = explode(" ", $m);
$final = explode(" ", microtime());
$tiempo = ($final[1] + $final[0]) - ($comienzo[1] - $comienzo[0]);
echo "Esta página fue generada en $tiempo segundos";

No obstante, una medición aislada no suele ser significativa si lo que deseamos es saber qué páginas (o secciones dentro de una misma página) tardan más para ver que conviene optimizar. Para eso conviene hacer un buen número de mediciones y sacar la media.

   
Publicado por:
Administrador
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon