Etiquetas

, , ,

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.