performance - una - ¿Cómo se mide la velocidad de carga de la página?
test de velocidad web (14)
Estoy tratando de cuantificar la "lentitud del sitio". En los viejos tiempos, simplemente se aseguraba de que su HTML fuera liviano, las imágenes optimizadas y los servidores no sobrecargados. En los sitios de gama alta basados en sistemas modernos de administración de contenido hay muchas más variables: publicidad de terceros, rastreadores y otras llamadas, el rendimiento de CDN (curiosamente a veces las redes de distribución de contenido empeoran las cosas), la ejecución de javascript, la sobrecarga de css , así como todo tipo de problemas del lado del servidor, como consultas largas.
La respuesta obvia es que cada desarrollador borre la caché y observe continuamente la sección "net" del complemento Firebug. ¿Qué otras formas de medir el "culo de arrastre del sitio" has usado?
Bueno, llámame anticuado pero ...
tiempo curl -L http://www.example.com/path
en linux :) Aparte de eso, soy un gran fan de YSlow como se mencionó anteriormente.
El "Tiempo de carga de la página" realmente no es fácil de definir en general. Depende del navegador que utilice, ya que diferentes navegadores pueden hacer más solicitudes en paralelo, porque javascript tiene diferentes velocidades en diferentes navegadores y porque el tiempo de renderización es diferente.
Por lo tanto, solo puede medir realmente el tiempo real de carga de la página utilizando el navegador que le interesa. El final de la carga de la página también puede ser difícil de definir porque puede haber una solicitud Ajax después de que todo esté visible en la página. ¿Eso cuenta la carga de la página o no?
Y por último, pero no por ello menos importante, el tiempo real de carga de la página puede no ser tan importante porque el "rendimiento percibido" es lo que importa. Para el usuario, lo que importa es cuándo tiene suficiente información para proceder
No estoy al tanto de ningún modo (al menos no podría decirte:]) que mida automáticamente el tiempo de carga percibido de tus páginas.
Usa AOL Pagetest para IE e YSlow para Firefox (enlace ver arriba) para obtener una "sensación" para que cargues el tiempo.
En Safari , la línea de tiempo de la red (disponible en el menú Desarrollar, que debe habilitar específicamente) brinda información útil sobre el tiempo de carga de los componentes de página individuales, así como también muestra cuándo cada componente comenzó a cargarse.
Si es asp.net puedes usar Trace.axd.
Yahoo proporciona yslow, que puede ser ideal para comprobar javascript
Apache Benchmark . Utilizar
ab -c <number of CPUs on server> -n 1000 url
para obtener una buena aproximación de la velocidad de su página.
Consígase un proxy de depuración adecuado instalado (recomiendo completamente a Charles )
No solo podrá ver un desglose completo de los tiempos / tamaños de respuesta, sino que también puede guardar los datos para su posterior análisis / comparación, así como jugar con las solicitudes / respuestas, etc.
(Editar: El soporte de Charles para la depuración de solicitudes SOAP vale la miseria de su tarifa de shareware - ¡esta semana me ha ahorrado la mitad de un buen día de pérdida de cabello!)
Firebug , imprescindible para los desarrolladores web de la extensión Firefox, puede medir el tiempo de carga de diferentes elementos en su página web. Al menos puede descartar CSS, JavaScript y otros elementos que tarden demasiado en cargarse.
Si necesita reducir los tiempos de carga de JavaScript y CSS, hay varios compresores de JavaScript y CSS disponibles en la web que simplemente eliminan el texto innecesario de ellos, como caracteres y comentarios de nueva línea. Por supuesto, mantenga una versión ordinaria en el lado para el desarrollo.
Si usa PNG, recientemente encontré un optimizador PNG que puede reducir el tamaño PNG llamado OptiPNG .
YSlow como se mencionó anteriormente.
Y combina esto con Fiddler. Es bueno si desea ver qué objetos de la página están tomando el mayor ancho de banda, que se están comprimiendo en el servidor, viajes de ida y vuelta inesperados y qué se está almacenando en la memoria caché. Y puede darle una idea general sobre el tiempo de procesamiento en el navegador web del cliente en comparación con el tiempo empleado entre el servidor y el cliente.
Yslow es bueno, y HttpWatch para IE también es genial. Sin embargo, ambos pierden la métrica más importante para un usuario "¿Cuándo está la página, arriba de la tapa , lista para ser utilizada por el usuario?". No creo que uno haya sido resuelto aún ...
Obviamente, hay varias maneras de identificar el tiempo de respuesta, pero el desafío siempre ha sido cómo medir el tiempo de renderización que se gasta en el navegador.
Tenemos una fase de prueba controlada en la que utilizamos varias herramientas automatizadas para probar la aplicación. Uno de los resultados que generamos a partir de esta prueba es un rastro de violín para cada transacción (un clic). Luego podemos analizar el seguimiento del violinista para comprender el tiempo del último byte y restarlo con el tiempo total que tomó la página.
Algo como esto 1. A = Tiempo de respuesta total medido por una herramienta automatizada (en nuestro caso usamos QTPro) 2. B = Tiempo hasta el último byte (Servidor + tiempo de red, desde el seguimiento del violinista) 3. C = AB ( aproximadamente Tiempo de renderizado, O el tiempo pasado en el navegador)
Todo lo anterior que expliqué puede convertirse en un proceso de prueba estándar y al final de la prueba podríamos generar una separación del tiempo empleado en cada capa, por ejemplo, el tiempo de renderizado, el tiempo de red, las llamadas a la base de datos, etc.
Uso rutinariamente webpagetest.org , que puede usar para realizar pruebas de rendimiento desde diferentes ubicaciones, en diferentes navegadores (aunque solo en msie 7-9), con diferentes configuraciones (número de iteraciones, velocidad de conexión, primera ejecución vs segunda visita, excluyendo datos específicos) solicitudes si lo desea, credenciales si es necesario, ...).
el resultado es un informe muy detallado del tiempo de carga de la página que también brinda asesoramiento sobre cómo optimizar.
¡realmente es una gran herramienta (gratuita)!
La última vez que trabajé en un sitio web de gran volumen, hicimos varias cosas, entre ellas:
- Usamos Yslow para obtener un análisis de los factores individuales que afectan la carga de la página: https://addons.mozilla.org/en-US/firefox/addon/5369
- Monitoreo de rendimiento usando una herramienta comercial externa llamada Gomez - http://www.gomez.com/instant-test-pro/
- Ponemos énfasis en probar usando una compilación de integración continua, utilizando Apache JMeter . http://jmeter.apache.org/
Si desea un vistazo rápido, digamos una primera aproximación, me gustaría ir con YSlow y ver cuáles son los principales factores que afectan el tiempo de carga de la página en su aplicación.
Yslow es una herramienta (extensión del navegador) que debería ayudarte.
YSlow analiza páginas web y explica por qué son lentas en función de las reglas de Yahoo! para sitios web de alto rendimiento.
PageSpeed es una herramienta de comprobación en línea de Google, que es muy precisa y confiable: