Autor Tema: [Tutorial] Calcular tiempo de carga de un página  (Leído 2765 veces)

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
[Tutorial] Calcular tiempo de carga de un página
« en: 14 de Enero de 2011, 16:51:46 pm »
Bueno para calcular el tiempo que tarda la página en cargar es muy fácil.

Primero en el inicio de todo el archivo, ponemos:
Código: [Seleccionar]
<?php
$time 
microtime(); // Sacamos el tiempo en microsegundos
?>


Al final del código va esto:
Código: [Seleccionar]
<?php
echo "La página se ha generado en ". (microtime() - $time) ." segundos."// Restamos los microsegundos actuales a los anteriores
?>


¿Que es lo que sucede?
Pues al inicio del todo hemos calculado un microtime() y al final otro microtime() la diferencia en la carga de la página se hace así, por que cuando tu sacas un microtime() antes que el otro microtime() por supuesto el tiempo que tarda en llegar al otor microtime() es el tiempo de carga de la página.

Saludos
« Última modificación: 14 de Enero de 2011, 16:58:51 pm por javipilo »

Comunidad PHPeros

[Tutorial] Calcular tiempo de carga de un página
« en: 14 de Enero de 2011, 16:51:46 pm »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #1 en: 14 de Enero de 2011, 17:08:10 pm »

Gracias!. Quizás me venga bien :P K+

#Fdo. Physlet

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #2 en: 15 de Enero de 2011, 02:58:24 am »
Jaja gracias...

Saludos

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #3 en: 15 de Enero de 2011, 03:18:04 am »
Buen aporte, aunque ya lo sabia.. lo utilizaba para calcular el tiempo de carga de algunas funciones.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado raxtunett

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Solo PHP
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #4 en: 15 de Enero de 2011, 04:20:58 am »
exelente!! me sirvio mucho :)
<img src="http://imghabb.com.nu/images/868210logo2.png" width="264px" height="167px">

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #5 en: 15 de Enero de 2011, 15:53:49 pm »
Focux nunca viene mal recordar ¿verdad? jeje

Saludos

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #6 en: 15 de Enero de 2011, 16:27:22 pm »

Ahora que lo he probado, el código hace epics fails. Es decir, hay veces que te tira el resultado correcto, otras con un formato extraño y otras con resutado erroneo. Casos:

  • Tira perfectamente el número: 0.003266
  • Tira una secuencia de numeros mas unas letras: 4.2000000000042E-5
  • Tira resultado erroneo. Con esto quiere decir que una vez me tira 0,000001 segundo de carga, refesco (Tarda incluso menos) y dice que ha tardado 21 segundos... ¿Lol?

#Fdo. Physlet

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #7 en: 15 de Enero de 2011, 17:13:57 pm »
Tira una secuencia de numeros mas unas letras: 4.2000000000042E-5
Te saltaste la clase donde explicaban la notación cientifica? no es un fail ¬¬ lo tuyo si.

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #8 en: 15 de Enero de 2011, 17:18:56 pm »

Te saltaste la clase donde explicaban la notación cientifica? no es un fail ¬¬ lo tuyo si.

Si, ya se que es para representar un número elevado a X numeros (Creo, es que hace 2 años que no doy fisica y quimica). Bueno, supongo que la solución será mostrar solo las primeras 4 o 5 cifras :P

#Fdo. Physlet

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #9 en: 15 de Enero de 2011, 17:23:55 pm »
Si, ya se que es para representar un número elevado a X numeros (Creo, es que hace 2 años que no doy fisica y quimica). Bueno, supongo que la solución será mostrar solo las primeras 4 o 5 cifras :P
Si muestras solo las 4 o 5 cifras, no verás la base E y el resultado no estaría correcto.

¿Y si lo prueban con nanosegundos? xdd
« Última modificación: 15 de Enero de 2011, 17:27:01 pm por Physlet »

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #10 en: 01 de Marzo de 2011, 12:21:04 pm »
Buenas,

Lo primero antes de todo... Notación científica no es de física, ni de química sino de matemáticas al igual que esta función.

La lógica es simple... al obtener el tiempo al inicio de carga de la página, es el tiempo justo en el que se ha empezado a cargar la página, y al final para saber el tiempo en el que la página ha dejado de cargarse... ( en teoría, porque si luego mostramos el tiempo, seguirá cargandose la página, procesando la operación).

Por lo cual si $tiempoinicio = microtime(); (al principio de la página) y $tiempofin = microtime(); al final de la página, tan solo nos queda lo que ha dicho perfectamente Javipilo que es hacer la diferencia entre $tiempofin - $tiempoinicio (ya que el tiempo fin es mayor que tiempo inicio, ya que ha trascurrido más tiempo...

Ahora bien, si cargamos el localhost, el tiempo de carga será de 0 ó 21 segundos, según la latencia de tu pc en ese momento, osea si se te queda pillado o no, en terminos coloquiales.

Si lo subieras a un servidor privado, pasaría igual si el servidor está colapsado lo que pasa que no lo notaríamos, o nos parecería más real, debido a que el tiempo de carga de la página, también se notaría visualmente como un error de la conexión o simplemente ni veríamos la página por TimeOut con ERROR 500, como suelen aparecer en la mayoría de las modificaciones Apache actuales.

Por lo cual depende de dónde lo uses te saldrá un resultado fiable o no.
pero tanto la teoría como la lógica que ha explicado Javipilo está perfecta. (:
Sin Firma me haces una? :P

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #11 en: 01 de Marzo de 2011, 16:27:37 pm »
Tú no puedes restar una cadena de una cadena. La función microtime() devuelve una cadena, sin embargo, si le agregas un parámetro devolverá un float, que sí podrás restar y obtener resultados apropiados.

Por lo tanto sería:

//Inicio del código
$time = microtime(true);

//Final del código
echo "La página se ha generado en ". (microtime(true) - $time) ." segundos.";

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #12 en: 01 de Marzo de 2011, 19:50:59 pm »
Ese código es correcto y va bien...

Saludis

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Calcular tiempo de carga de un página
« Respuesta #13 en: 01 de Marzo de 2011, 19:55:58 pm »
Ese código es correcto y va bien...
Saludis
¿Cuál?