Comunidad PHPeros
Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: javipilo 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:
<?php
$time = microtime(); // Sacamos el tiempo en microsegundos
?>
Al final del código va esto:
<?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
-
Gracias!. Quizás me venga bien :P K+
-
Jaja gracias...
Saludos
-
Buen aporte, aunque ya lo sabia.. lo utilizaba para calcular el tiempo de carga de algunas funciones.
-
exelente!! me sirvio mucho :)
-
Focux nunca viene mal recordar ¿verdad? jeje
Saludos
-
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?
-
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.
-
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
-
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
-
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. (:
-
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.";
-
Ese código es correcto y va bien...
Saludis
-
Ese código es correcto y va bien...
Saludis
¿Cuál?