Foros del Web » Programando para Internet » PHP »

¿Como calcular el tiempo de carga?

Estas en el tema de ¿Como calcular el tiempo de carga? en el foro de PHP en Foros del Web. Hola amigos. Como este foro ahora esta en PHP podiais revelar la parte del código en la que pone el tiempo de carga y ya ...
  #1 (permalink)  
Antiguo 13/11/2002, 14:35
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 16 años
Puntos: 0
Pregunta ¿Como calcular el tiempo de carga?

Hola amigos.
Como este foro ahora esta en PHP podiais revelar la parte del código en la que pone el tiempo de carga y ya de paso si os quereis sobrar un poco revelais también lo del tanto % y tantas consultas a la base

Salud:0s
  #2 (permalink)  
Antiguo 13/11/2002, 14:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los tiempos q muestra el foro abajo .. no son de "carga" de la página .. sino de tiempos de proceso de la misma .. tanto en el apartado programacion PHP como en el de proceso SQL ...

Medir el tiempo de proceso PHP:

Usando la funcion microtime() (ejemplo de PHP.net manual):
Código PHP:
function getmicrotime(){ 
   list(
$usec$sec) = explode(" ",microtime()); 
   return ((float)
$usec + (float)$sec); 
   } 

$time_start getmicrotime(); // coger la Hora actual en microsegundos ...
   
// El código de tu página.

// Un ejemplo para q veas un proceso en funcionamiento ...
for ($i=0$i 1000$i++){
   
//do nothing, 1000 times. 
   
}

// Fin código de tu página ..

$time_end getmicrotime(); // Coger la hora actual en microsegundos ..

$time $time_end $time_start;

echo 
"Did nothing in $time seconds"
El tema de ver cuantas consultas intervinieron y q tiempo de proceso le llevó a Mysql hacer la consulta lo puedes hacer con:

Código PHP:
mysql_stat($link); 
Esa funcion da informacíon sobre lo último ejecutado en ese link de conexion ($link=mysql_connection(....))


Un saludo,
  #3 (permalink)  
Antiguo 13/11/2002, 15:01
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
Una forma que podrias probar seria
<?
// Toma la hora actual. Tiene que estar al principio de la pagina
$InicioCarga=date("H-i-s");

//Aqui empieza nuestra pagina
//......
//qui finaliza nuestra pagina

//Toma la hora actual. Tiene que estar al final de la pagina
$FinCarga=date("H-i-s");
//la funcion SegundosDiferencia devuelve el numero de segundos entre dos horas.
$resultado=SegundosDiferencia($InicioCarga,$FinCar ga);

//Mostramos los resultados.
echo "Ha tardado ".$resultado." segundos en cargar la pagina.";

function SegundosDiferencia($horaini,$horafin)
{
$horai=substr($horaini,0,2);
$mini=substr($horaini,3,2);
$segi=substr($horaini,6,2);

$horaf=substr($horafin,0,2);
$minf=substr($horafin,3,2);
$segf=substr($horafin,6,2);

$ini=((($horai*60)*60)+($mini*60)+$segi);
$fin=((($horaf*60)*60)+($minf*60)+$segf);

$dif=$fin-$ini;

return $dif;
}
?>

espero que te sirva, si no mira la solucion de Cluster,
Saludos
  #4 (permalink)  
Antiguo 13/11/2002, 15:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Menudo lio Chuty xDD ...

Chuty .. usa para obtener la fecha time() .. eso te dará segundos transcurridos desde 1 enero de 1970 (si no me equivoco) a la fecha (formato UNIX) ...

Haces las operaciones q necesites .. y luego "formatea" su salida con date() así presentas como mas te guste el resultado (q seá en segundos ...).

$fecha_inicio=time();

// tu proceso - tu página ..

echo "tardó en ejecutarse: ".date("H:i:s",time()-$fecha_inicio);

Pero, el caso q un proceso (un script) ..puede tardar en ejecutarse menos de 1 segundo .. y el fomato timestamp sono cuenta segundos .. Por eso hay q usar para este caso q se necesita precision el microtime() ...

Un saludo,
  #5 (permalink)  
Antiguo 13/11/2002, 15:14
Avatar de Maycol  
Fecha de Ingreso: diciembre-2001
Ubicación: Ávila (España)
Mensajes: 539
Antigüedad: 16 años
Puntos: 0
Gracias a los dos.

Utilizare el ejemplo de cluster pero graciaspor ayudar también chuty ;)
  #6 (permalink)  
Antiguo 04/05/2003, 21:32
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Cita:
[i]El tema de ver cuantas consultas intervinieron y q tiempo de proceso le llevó a Mysql hacer la consulta lo puedes hacer con:

Código PHP:
mysql_stat($link); 
Esa funcion da informacíon sobre lo último ejecutado en ese link de conexion ($link=mysql_connection(....))


Un saludo, [/B]
Me interesa esa funcion pero no entiendo lo que devuelve. probando, con el mismo programa, el valor de Questions se incrementa diferente cada vez. Cluster, sabes exactamente como contabilizar los queries y el tiempo con esto?
  #7 (permalink)  
Antiguo 05/05/2003, 10:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues ... zeus_bsas .. No he probado esa función en la práctica.

Pero .. en la documentación de PHP .. sobre esa función dice que devuelve un array con esas estadisticas de la consulta realizada:

Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)


Puedes omitir el link de conexión en mysql_stat() .. pero si usas varias conexiones simultaneas debes usar el link de conexión que quieras ver sus estadisticas.

Código PHP:
<?
// conectas a tu BD seleccionas la BD .. ejecutas la consulta .. :
$link=mysql_connect(.....);
mysql_select_db(...,$link);
$consulta=mysql_query(.....,$link);

// haces lo que tengas que hacer con tu $consulta ...

// Resumen estadisticas de esta Conexión hasta el momento.
$estadisticas_consulta=mysql_stat($link);
foreach (
$estadisticas_consulta as $indice_dato => $valor){
echo 
$indice_dato." => ".$valor."<br>";
}
?>
Como array que son los resultados que arroja la consulta .. puedes accederlos directamente por su indice numerico según detalla el manual sobre que entrega cada elemento por si solo necesitas un dato o algunos datos estadisticos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:57.