2010-10-05 9 views
12

Estoy trabajando en una aplicación web (basada en Rails 3). Y realmente no me gusta el tiempo que lleva generar la página; según los datos que se muestran, demora hasta 2.5 e incluso 4 segundos.¿Cuál es el tiempo razonable para generar una página web?

Así que me preguntaba cuál es el tiempo razonable promedio para generar páginas en sus aplicaciones. Diciendo que verifique el tiempo de generación, p. son 750 ms y piensan "Ok, eso debería estar bien incluso sin almacenar en caché". O cuando ve 1,5 segundos, piensa: "Dios mío, el usuario no esperará tanto y abandonará el sitio"

+0

¿Qué hace su aplicación? – Gumbo

+0

@Gumbo, muestra varios datos estadísticos – fantactuka

+0

Obviamente, debe tratar de hacerlo lo más rápido posible, pero la velocidad realmente depende de lo que esté haciendo. Además, divide los tiempos en partes. Por ejemplo, habrá tiempo para el acceso a la base de datos y un tiempo para la representación de la página. ¿Cuál está tomando mucho tiempo? Si está renderizando, entonces probablemente estés usando mucho javascript. ¿Puede ese javascript separarse en una solicitud ajax que se carga después de que la página se carga en el navegador? Si es la base de datos, asegúrese de hacer todo lo que necesita para optimizar. Carga ansiosa, índices apropiados, etc. – sosborn

Respuesta

13

Hay una gran cantidad de datos de investigación sobre el tiempo de consulta a renderizado y la experiencia del usuario. Recomiendo leer this useit.com article. Después de todo la velocidad de Google integrada página en sus resultados por una razón;)

Los límites 3 de tiempo de respuesta son los mismo hoy que cuando escribí sobre ellos en 1993 (sobre la base de 40 años de edad, la investigación por factores humanos pioneros):

  • 0,1 segundos da la sensación de respuesta instantánea - es decir, el resultado siente como que fue causada por el usuario, no el equipo.Este nivel de capacidad de respuesta es esencial para apoyo de la sensación de manipulación directa (manipulación directa es una de las técnicas de interfaz gráfica de usuario clave para la participación del usuario aumento y control - para más al respecto, consulte nuestros Principios de Diseño de Interfaces seminario) .
  • 1 segundo mantiene el flujo de pensamiento del usuario sin problemas. Los usuarios pueden percibir un retraso , y así conocer el equipo es generar el resultado, pero aún así sentirse en control de la experiencia en general y que se están moviendo libremente en lugar de esperar en el equipo . Este grado de respuesta es necesario para una buena navegación .
  • 10 segundos mantiene la atención del usuario. De 1 a 10 segundos, los usuarios definitivamente se sienten a merced de la computadora y desearían que fuera más rápido, pero pueden manejarlo. Después de 10 segundos, comienzan a pensar en otras cosas , lo que hace más difícil volver a encarrilar sus cerebros una vez que la computadora finalmente responde.

Una demora de 10 segundos a menudo hará que usuarios dejen un sitio inmediatamente. Y , incluso si se quedan, es más difícil para entender lo que está pasando, , lo que hace que sea menos probable que tenga éxito en tareas difíciles.

Como regla general, piense que siempre debe aspirar a un equilibrio entre el tiempo de optimización y el tiempo ganado. No pierda días optimizando el infierno de una rutina cuando sus imágenes no se comprimen correctamente, o sus scripts/CSS no combinados. Sí, más rápido es mejor, pero un aumento del 90% en la generación de la página mediante la configuración de una caché inteligente supera un 10% de ganancia después de una semana ajustar el algoritmo.

Además, no preste demasiada atención al primer tiempo de renderización cuando el marco tenga que cargar todo, pero use pruebas de estrés, en caché o no, para simular varias situaciones.

Ahora, algunos datos; algunos de los últimos sitios en los que trabajé usaban DotNetNuke, un enorme CMS de código abierto y Asp.Net MVC, donde te acercabas al metal. El tiempo de página promedio con consultas de db promedio fue 600-700 milisegundos para DotNetNuke. Para Asp.net MVC, son 70-100 milisegundos ... A los usuarios les gusta mucho el segundo :)

5

No hay una respuesta "correcta" a esto: cuanto más rápido, mejor. Personalmente, normalmente aspiro a < 200ms, aunque sé por experiencia que puede ser bastante difícil lograr esto en Rails en cualquier cosa que no sean aplicaciones simples. Intenta averiguar dónde están tus cuellos de botella y almacena lo que puedas en la memoria caché.

Editar: Parece haber cierta confusión entre el tiempo de generación de página y el tiempo de renderización de página. Obviamente, el objetivo es una página rápida render, y en la mayoría de los sitios que hacen cosas como reducir solicitudes HTTP, gzipping CSS/JS es donde puede obtener la mayoría de sus ganancias rápidas. Pero si la página en sí misma puede tardar de 4 a 5 segundos en generarse, entonces es probable que tengas razón de que tu aplicación es donde debes comenzar.

+0

Creo que uno de los momentos más importantes es el tiempo ** percibido ** por el usuario. Muchas de las optimizaciones actualmente aplicadas en los sitios web no toman en cuenta el código, sino que se enfocan en la carga asíncrona de javascript y la descarga paralela de recursos. – samy

0

Mida su puntaje de apdex y vea cómo está funcionando. Eso te dará una indicación áspera. A partir de ahí, puede decidir cómo desea aumentar el rendimiento.

También depende de lo que sea su sitio; una aplicación de sistema para una empresa o software como servicio (SaaS)? Si se trata de una aplicación del sistema, los usuarios se ven obligados a usarla para que el rendimiento se pueda negociar. Si se trata de un SaaS, cuanto mayor sea su puntaje de apdex, más posibilidades tendrá de perder el interés de su usuario.

Existen algunas gemas que miden el rendimiento e informan sobre cuál es su apdex.

Aquí hay un poco más de información: http://apdex.org/blog/?p=630

2

Depende de si no aparece nada de 2,5-4 segundos, o que el usuario ya ve (una parte de) la página desde el principio, y se termina de cargar completamente después de 2.5-4 segundos. En ese caso, el usuario no experimenta una carga de 2.5-4 segundos. Tome el sitio web http://www.nytimes.com/; Veo la mayor parte de inmediato, pero de acuerdo con el Web Inspector toma 1,94 segundos para que se cargue por completo.

Y tenga en cuenta que la velocidad también dependerá del navegador, la computadora, la conexión a Internet. Lo que es rápido para ti puede ser más lento para otros.

-4

Mi regla personal: ninguna página debe demorar más de 0.05 segundos o tiene problemas.

Siempre que escriba el código correcto, no necesita dedicar mucho tiempo a la optimización para mantenerse por debajo de 0,05.

Si te apegas a frameworks gigantes, entonces estás de suerte.

+0

wow, tienes sitios que son tan rápidos, ¡felicitaciones! Debes almacenar en caché tus peticiones de DNS, supongo. ¿En qué estás trabajando, un marco baremetal? – samy

+0

Por curiosidad, ¿puedes decir la diferencia entre .1 segundos y 0.05 segundos? Si es así, ¿te molesta realmente la diferencia? Solo pregunto porque .05 parece ser un número arbitrario increíble. – sosborn

+0

Sí, importa cuándo comenzarás a obtener una carga real. No es baremetal, es liviano y tiene memoria caché. – BarsMonster

Cuestiones relacionadas