Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Tiempo de ejecución de una página con PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Tiempo de ejecución de una página con PHP

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.

Por Daniel Rodríguez Herrera
Original de Multivac.info

 



Usuarios que han visto este tema también han visto...

- Codificar contraseñas md5
- Instalar Eclipse PDT para PHP
- Solucionar errores con MySQL
- Contador de Visitas Básico con PHP
- Covertir Números decimales a Romanos en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 09-01-2009 a las 03:42:29