Ricardo Galli, de software libre

Octubre 29, 2007

¿Diez, cinco o menos?

Guardado en: desarrollo — gallir @ 6:02 pm
Tags: tiempo de decarga, tiempo de respuesta, tiempo de retorno, web

Ayer en Tecnorantes Los tiempos de carga y el tamaño de los sitios web, hoy contesta Sigt con La regla de los 10 segundos en desarrollo web.

En Tecnorantes dan unos ejemplos de casos aberrantes. Pero yo refinaría y ajustaría aún más. No debe ser 10 ó 5 segundos, sino menos, unos 3 segundos. Pero es un error medir el tiempo basado en la descarga total, sino en el tiempo que tarda entre la conexión y cuando se presenta al usuario la pantalla dibujada. Pera esto último no hace falta bajar todas las imágenes y Javascript, sino lo esencial (lo que obliga a un buen diseño y diferir cargas de algunos ficheros al final del html, por ejemplo los javascripts que no modifican el documento).

Hace ya bastantes años (casi seis y medio, en junio de 2001) escribí sobre el tema en Bulma. Es viejuno y allí explico con las tablas -que es lo que se usaba para controlar el renderizado de las páginas. De todas formas lo que planteo de tiempos de respuestas, de retorno y de recarga siguen siendo relativamente válidos:

  1. Tiempo de respuesta: cuanto tiempo tarda en servidor en empezar a devolver resultados al navegador. Este es el parámetro más importante que debe tener en cuenta el o los programadores. De él depende que se pueda ajustar el diseño para que los usuarios puedan empezar a visualizar la página lo más rápido posible. Si las primeras consultas a la base de datos son muy complejas o tenemos habilitado el buffering en el lado servidor (en PHP4 se hace con ob_start()), podemos afectar negativamente el resultado. Por el contrario, si el resultado se obtiene muy rápidamente el uso del buffering puede ayudar bastante al envío eficiente de los datos a través de la red. Para que la página de una sensación de agilidad, es importante que el tiempo de respuesta no supere los 2 o 3 segundos.
  2. Tiempo de retorno: cuanto tiempo tarda el servidor en terminar de ejecutar los programas en el servidor y entregar todos los datos y será siempre superior al tiempo de respuesta (Tretorno > Trepuesta). El tiempo que tarde el programa en terminar de generar todos los datos no sólo influirá en la conexión con un usuario en particular, sino con el rendimiento de todo el sistema. A mayor tiempo de retorno, menor cantidad de conexiones simultáneas posibles y mayor carga de todo el sistema. Si el tiempo de retorno de un script es superior a un 1 segundo, hay que estudiarlo detenidamente. El primer estudio a hacer es el consumo de CPU. Si ésta es baja, tenemos problemas de latencia, posiblemente con la conexión a la base de datos. Si por el contrario el consumo es elevado, la lógica del programa es muy compleja o usamos muchas llamadas de sistema. En estos casos puede ayuda el uso de sistemas de cache de código.
  3. Tiempo de descarga: es el tiempo que tarda el cliente en bajarse todos los datos a su ordenador. Este tiempo es siempre mayor al tiempo de respuesta (Tdescarga > Tretorno) y depende de la velocidad de conexión.

Aún así, una página que tenga más de unos pocos cientos de KB es demasiado, sólo se podría justificar si es una aplicación compleja y de sesiones de usuario prolongadas.

8 Comentarios »

  1. El siguiente que escriba, va a pedir un segundo :)

    ahora fuera de coñas, eso, mas que una regla, son los resultados de un estudio sobre la atencion del usuario.
    Nadie dice que está bien que algo tarde en cargar 9 segundo, o 4.
    Si no que si tarda mas de 10, mal vamos…

    Y eso, aparte del tamaño, depende del dispositivo, la conexion y unos cuantos factores mas.

    Comentario por Juan Luis — Octubre 29, 2007 @ 6:07 pm

  2. A lo mejor 20minutos se llama asi por lo que tarda en cargar con un modem de 9600 baudios :)

    Comentario por Juan Luis — Octubre 29, 2007 @ 6:07 pm

  3. Hola Ricardo,

    yo tambien resaltaría la importancia del tiempo de resolución de DNS.

    Para estas medidas, y para las relacionadas con todos los ‘related requests’ de la página (como pueden ser los JS, CSS… incluidos) os recomiendo nuestros servicios de monitorización (HTTP y HTTP Performance). Por favor daos de alta sin compromiso, ya que este servicio es gratuito para bloggers.

    Saludos !

    Comentario por Enrique — Octubre 29, 2007 @ 6:54 pm

  4. Hola

    Los estudios iniciales de interfaces de usuario hablan de reacción del cerebro ante aplicaciones software (es decir el tiempo desde que hago click y se ejecuta la acción) de menos de un segundo (de hecho ms), antes de comenzar nuestro “enfado”. Aunque la web tiene sus características, más de 6 segundos en pruebas con usuarios reales, ofrece problemas.

    Y estoy de acuerdo que con menos de 3 segundos es una medida muy interesante. Y cómo lo mido, además del apunte anterior hay un par de ellas interesantes (extensiones de Firefox): http://lori.mozdev.org/ o http://www.getfirebug.com/ (que hace mucho más).

    Saludos!

    Comentario por Cesáreo — Octubre 29, 2007 @ 8:36 pm

  5. la cosa es que se dependen de muchos factores….tanto tecnológicos como de infraestructura. Determinar que una web se cargue en 3 o 5 es realmente complicado, depende la conexión a internet que poseas, los saltos de red que tenga que dar tu conexión el relay del dns….

    una vez todo eso… la petición llega al servidor, este la ejecuta devuelve el código en html, este paso es el que mas intento controlar, el tiempo de ejecución, del ancho de banda de mis servidores, ya pago bastante para tener 100mbps que me suele llegar :S

    la cosa es que luego el cliente tiene que descargar todo el contenido….

    uff debería de hacer un manual de optimización web :S, así no me olvidaría xD

    saludos

    Comentario por deambulando — Octubre 29, 2007 @ 11:17 pm

  6. De acuerdo, hay multitud de factores externos sobre los que no tenemos ningún control que influyen en el tiempo de carga de la página (y en cuántos usuarios van a hartarse de esperar).

    Pero al final, a quien van a pedir responsabilidades por ir demasiado lento no es al DNS o a la latencia de la conexión del cliente: es a nosotros.

    Así que ya nos lo podemos ir currando más, que hay demasiada web doscero por ahí suelta inaccesible vía módem (o por gprs).

    Comentario por Iñigo — Octubre 30, 2007 @ 12:53 am

  7. Pero tampoco veo que se considere el contenido, que si el script es importante y el tiempo de respuesta / retorno, pero una aplicación cargada de muchos elementos gráficos por muy óptimo que sea el script que uses, tardará mucho más tiempo, a por más decir, una web en flash con sonido de fondo y una animación de precarga (que las hay muchas en estos días)

    Interesante estudio aún así.

    Comentario por Aoyama — Octubre 30, 2007 @ 2:12 pm

  8. […] Marcos Garcia) - Los tiempos de carga y el tamaño de los sitios web (Por Tecnorantes) - ¿Diez, cinco  menos? (Por Ricardo Galli) - Noticias a diario en Mobuzz.tv - El Noticiero (Por Eduardo Collado) - […]

    Pingback por Links interesantes de la semana - 25 — Noviembre 2, 2007 @ 10:32 pm

Suscripción RSS a los comentarios de la entrada. URI para TrackBack.

Deje un comentario

Blog de WordPress.com.