inicio fin etiqueta codigo bloque php time load pageload

fin - PHP Get Page Load Stats-Cómo medir la ejecución del script php/tiempo de carga



php</ php (8)

Lo que tengo en el encabezado:

$time = microtime(); $time = explode('' '', $time); $time = $time[1] + $time[0]; $start = $time;

Lo que tengo en el pie de página:

$time = microtime(); $time = explode('' '', $time); $time = $time[1] + $time[0]; $finish = $time; $total_time = round(($finish - $start), 4); echo ''Page generated in '' . $total_time . '' seconds.'';

Salida: Página generada en 1292008977.54 segundos.

¿Alguien puede por favor ayudarme a descubrir por qué el resultado no es el correcto? Estoy usando PHP5.


Al ver cómo este es el primer resultado en Google, pensé que iba a compartir mi solución a este problema. Pon esto en la parte superior de tu página:

$startScriptTime=microtime(TRUE);

Y luego coloca este código al pie de tu página:

$endScriptTime=microtime(TRUE); $totalScriptTime=$endScriptTime-$startScriptTime; echo "/n/r".''<!-- Load time: ''.number_format($totalScriptTime, 4).'' seconds -->'';

Cuando ve el origen de una página, puede ver el tiempo de carga en un comentario en la última línea de su HTML.


El problema es con el alcance variable. Establece su variable $ start en el encabezado, pero en el pie de página, esta variable estará vacía. Entonces $ total_time sería la hora actual - 0, que le da la hora actual.

Una solución es usar GLOBALS de php. En el encabezado:

$GLOBALS[''time_start''] = microtime(true);

Y en el pie de página:

$total_time = round(($finish - $GLOBALS[''time_start'']), 4);


En lugar de usar microtime en cada página, lo que haría es insertar microtime en $ _REQUEST y luego restar ese tiempo de la hora actual dentro de una función y configurar esa función para que se llame cuando la ejecución del script finalice usando:

register_shutdown_function ( ''Your_function_name'' );

Creo que es útil utilizar un script global que se incluirá al comienzo de cada script / clase en toda la aplicación, me ayuda a manejar errores, administrar sesiones, etc ...

Agregar microtime a $ _REQUEST sería la primera línea en ese script y también puede incluir su función de terminación allí.


Me gusta usar algo como esto. Facilita la temporización de varios bloques de código sin tener que hacer malabarismos con los nombres de las variables y demás. las sesiones deben estar habilitadas.

function code_timer ($name) { $mtime = explode('' '',microtime()); $time = $mtime[1] + $mtime[0]; //determine if we''re starting the timer or ending it if ($_SESSION["timer-$name"]) { $stime=$_SESSION["timer-$name"]; unset($_SESSION["timer-$name"]); return ($time - $stime); } else { $_SESSION["timer-$name"]=$time; return(true); } }

uso:

code_timer (''a''); //do stuff echo "page generated in " . code_timer(''a'');


Pon esto en tu encabezado

<?php $starttime = explode('' '', microtime()); $starttime = $starttime[1] + $starttime[0]; ?>

y esto en tu pie de página

<html><center>Page generated in <?php $load = microtime();print (number_format($load,2));?> seconds. <?php $loadtime = explode('' '', microtime()); $loadtime = $loadtime[0]+$loadtime[1]-$starttime; echo ''Peak memory usage: '',round(memory_get_peak_usage()/1048576, 2), ''MB''; ?></center></html>

esto le indicará cuánto tiempo llevó generar la página de su sitio y cuánta memoria se utilizó para cargar la página.


Puede usar esta función simple para evitar el problema de alcance variable:

<?php function timer() { static $start; if (is_null($start)) { $start = microtime(true); } else { $diff = round((microtime(true) - $start), 4); $start = null; return $diff; } } timer(); echo ''Page generated in '' . timer() . '' seconds.'';


microtime() devuelve la marca de tiempo de Unix actual con microsegundos . No veo ninguna matemática allí que haga la conversión de microsegundos a segundos.

microtime(true) devuelve el tiempo como un flotador en segundos


$page_loadtime_in_millisec = ($page_loadtime / 1000); echo ''<pre>Page Infor: Page Load Time : '' . $page_loadtime.'' <b>Microseconds</b><br/> Page Load Time : '' . $page_loadtime_in_millisec.'' <b>Milliseconds</b><br/> Page Load Time : '' . number_format(($page_loadtime_in_millisec/1000),18) . '' <b>Seconds</b></pre>'';