¿Cuáles son algunas de las optimizaciones importantes que se pueden realizar en un sitio web para reducir el tiempo de carga?Optimizaciones para reducir el tiempo de carga del sitio web
Respuesta
Eliminar/Minimizar los cuellos de botella en el lado del servidor. Para este propósito, use un generador de perfiles como Xdebug o Zend Debugger para averiguar dónde está haciendo su aplicación costosas y lentas. Implementar el almacenamiento en caché siempre que sea posible. Use un Caché OpCode. Si esto aún no es lo suficientemente rápido, considere invertir en más CPU o RAM o SSD (dependiendo de si tiene CPU, IO o memoria)
Para optimizaciones generales del servidor/cliente, consulte Yahoo YSlow! User Guide.
Básicamente lo resume a:
- Minimizar las solicitudes HTTP
- utilizar una red de distribución de contenidos
- Añadir una fecha de vencimiento o un encabezado Cache-Control
- Componentes Gzip
- Coloque StyleSheets en la parte superior
- Coloque las secuencias de comandos en la parte inferior
- Evitar CSS Expresiones
- Hacer JavaScript y CSS externa
- Reducir búsquedas DNS
- Minify JavaScript y CSS
- Evitar redirige
- quitar guiones de duplicados
- Configurar ETags
- Hacer AJAX cacheable
- Usar GET para solicitudes AJAX
- reducir el número de elementos DOM
- No 404
- Reducir el tamaño de la galleta
Dominios- uso de cookies libres para Componentes
- evitar que los filtros
- no escalan imágenes en HTML
- Hacer favicon.ico Pequeño y cacheable
también ver los comentarios que contribuyeron a continuación, ya que contienen una cierta información útil adicional para otros usuarios.
También puedes ver de Google Page Speed http://code.google.com/speed/page-speed/ es una buena alternativa/complemento de YSlow y también es un complemento de Firebug. Captura algunas cosas que YSlow no capta, y viceversa. –
Una cosa más: use sesiones en memoria si controla lo suficiente del servidor para instalar complementos adicionales y tiene suficiente RAM. El complemento de Memcache incluye un manejador de sesión. http://php.net/memcache – Powerlord
Buena respuesta. Todas estas cosas se explican con más detalle en este (excelente) artículo de Yahoo: http://developer.yahoo.com/performance/rules.html –
Estas son algunas cosas "mejores prácticas":
- CSS almacenamiento en caché, JavaScript, imágenes, etc.
- archivos minifying Javascript.
- gzip content.
- Coloque enlaces a archivos JavaScript, código JavaScript y enlaces a archivos CSS en la parte inferior de su página cuando sea posible.
- Carga solo lo necesario.
- Para un sitio web existente, antes de hacer nada de esto, determine dónde están sus cuellos de botella con herramientas como Firebug y como alguien más mencionó a YSlow (recomiendo esta herramienta).
Hay dos lados puede importan, cuando se optimiza:
- El lado del servidor: lo que importa es la generación que la salida más rápida
- El lado del cliente: lo que importa es conseguir todo lo que tiene que mostrarse más rápido.
Nota: nosotros, como desarrolladores de, a menudo piensa en la optimización de la primera del lado del servidor ... que en la mayoría de los casos sólo representa menos del 10% por ciento de la carga en tiempo de la página!
En el lado del servidor, normalmente conviene a:
- perfil, para determinar lo que es mucho
- optimizar sus consultas SQL, y reducir su número
- uso de almacenamiento en caché
Para obtener más información, puede echar un vistazo a la respuesta que di hace un tiempo a esta pregunta: Optimizing Kohana-based Websites for Speed and Scalability
En el lado del cliente, las mayores ganancias se logran generalmente por:
- La reducción del número de peticiones HTTP - la forma más fácil es reducir el número de archivos/CSS/JS imágenes, por combinando varios archivos en uno
- Compresión de CSS/JS/HTML, usando por ejemplo Apache's
mod_deflate
.
Sobre eso, hay un montón de grandes cosas en Yahoo's Exceptional Performance: han lanzado un montón de good pratices y herramientas, tales como yslow.
Las opciones simples que se me ocurren son:
- Gzip (X) HTML, por lo que un archivo comprimido debe llegar más rápidamente al usuario
- Minify la CSS
- Minify la JS
- use el almacenamiento en caché donde sea posible
- utilice una red de entrega de contenido
- utilice una herramienta, como yslow para identificar los cuellos de botella y otras sugerencias
@bn, de hecho, editado para corregir. Gracias =] –
definitivamente quiero ver el almacenamiento en caché, ya que los viajes redondos a DB son caros. también, minify JS
Para reducir el tráfico de red, puede minimizar los archivos estáticos, como CSS y Javascript, y usar compresión gzip en el contenido generado. También puede probar el uso de herramientas como optipng para reducir el tamaño de las imágenes.
Sin embargo, el primer paso es analizar realmente lo que se está tomando todo el tiempo, ya sea enviar los bits a través de la red o generar realmente el contenido para enviar. No tiene sentido que sus archivos CSS sean un 10% más pequeños si lleva un minuto generar cada página HTML.
El equilibrio de carga ayudaría a reducir el tiempo de carga inmensas.
No, no lo haría, en casi todos los casos. – MarkR
La primera optimización es: Decida si es lenta, y si no, no se moleste.
Esto es más complicado de lo que parece, porque no es como probar una aplicación de escritorio o un juego. Un juego es lento si cuando lo juegas en el hardware de destino, la velocidad de cuadro es demasiado baja. Esto es muy fácil de medir.
Un sitio web es más complicado, porque usted, como desarrollador, probablemente esté utilizando un sistema de prueba local con una red muy rápida. Incluso cuando usa sus servidores de prueba/prueba de sistema, probablemente todavía esté en la red local. Incluso sus servidores de producción tienen muchas posibilidades, en el mismo continente.
Lo mismo posiblemente no sea cierto para muchos de sus usuarios.
Por lo tanto las opciones que existen son:
- Averigüe preguntando a sus usuarios, si se encuentran con que sea lenta
- simular un entorno de alta latencia y probar por sí mismo (o su equipo de control de calidad)
- conjeturas
Este último no es recomendable.
Una opción que el libro de rendimiento de sitios web de Yahoo más santo que nada (que sí, es un libro que puede comprar) no menciona mucho es HTTPS. La mayoría de las aplicaciones web que manejan datos importantes se ejecutan principalmente o en su totalidad a través de HTTPS, lo que cambia bastante las reglas del juego. Recuerde hacer todas las pruebas con esto habilitado.
instalar plug-in quemador, y la Page Speed sigue todas las directivas PageSpeed (hasta que sea posible) y ser feliz http://code.google.com/intl/it/speed/page-speed/
todos modos la optimización más Importante en mi experiencia es reducir el número de peticiones HTTP al mínimo ...
No utilice espacios en blanco en el código.
Recientemente lo hicimos en nuestro sitio web. Aquí hemos descrito nueve técnicas que parecían tener el mayor impacto con la menor dificultad: http://mentormate.com/blog/easy-ways-speed-website-load-time/
escribí algunas cosas acerca, vemos:
Como ya se ha mencionado, se puede utilizar Yslow o Page Speed Firefox extensión. Pero también puede usar GTmetrix, un servicio en línea que escanea su página con ambas herramientas.
características que me gusta/uso:
- suave, limpio y utilizable presention comparación
- con otra página. Es realmente interesante ver dónde están tus amigos/competidores.
(por cierto, no estoy relacionado con GTmetrix!)
- 1. Cómo reducir el "tiempo del primer byte" en mi sitio web?
- 2. Medir el tiempo de carga del sitio web con las solicitudes de Python
- 3. Herramienta de prueba de tiempo de respuesta del sitio web
- 4. Reducción del tiempo de carga del applet
- 5. Solución de análisis web para el creador del sitio web
- 6. Cómo reducir el tiempo de espera del servidor?
- 7. Cómo mejorar el tiempo de carga de la vista web
- 8. Redirige el sitio web después de cierto período de tiempo
- 9. Consejos para reducir el tiempo de vinculación de C++
- 10. Tema de Metro para el sitio web
- 11. (java/else/noscript iframe) para reducir el procesamiento del servidor?
- 12. Plantillas: ¿Utilizar declaraciones directas para reducir el tiempo de compilación?
- 13. SQLite es adecuado para el uso del sitio web
- 14. Sistema de insignia del sitio web
- 15. Obtener datos del sitio web
- 16. Optimizaciones del compilador de Erlang
- 17. Convertir el sitio web del sistema de archivos al sitio web de IIS
- 18. Sitio web para ciegos?
- 19. ¿Manera elegante de determinar el tamaño total del sitio web?
- 20. Selección del idioma del sitio web
- 21. Prueba del sitio web de Django en el iphone
- 22. ¿Utilizas Silverlight para un sitio web completo?
- 23. Cómo realizar pruebas de carga para el sitio web utilizando JMeter
- 24. NSTimer Reducir el tiempo en segundos/milisegundos
- 25. Administración del sitio web: ¿está integrado en el sitio web principal o en una sección separada?
- 26. Proyectos del sitio web vs Aplicación web: ¿cuál es mejor?
- 27. Ticketing escalable/sitio web del festival
- 28. Problemas con el raspado del sitio web usando zombie.js
- 29. Optimización del sitio web de PHP
- 30. Cómo reducir el tamaño del archivo de imagen en java
Mi favorito de todos los tiempos http://www.alistapart.com/articles/sprites – Ally