php - una - Optimizaciones para reducir el tiempo de carga del sitio web.
test my site google (14)
Antes de intentar cualquier optimización primero, necesita poder hacer un perfil, obtener FireBug para Firefox. Luego, puede realizar un análisis que le indicará exactamente qué hacer usando YSlow . Las cosas fundamentales que debes hacer se enumeran developer.yahoo.com/performance/rules.html .
¿Cuáles son algunas optimizaciones importantes que se pueden realizar en un sitio web para reducir el tiempo de carga?
Aquí hay algunas cosas de "mejores prácticas":
- Caching CSS, JavaScript, imágenes, etc.
- Reducción de archivos Javascript.
- contenido gzip.
- Coloque enlaces a archivos JavaScript, código JavaScript y enlaces a archivos CSS en la parte inferior de su página cuando sea posible.
- Cargue solo lo que sea necesario.
- Para un sitio web existente, antes de hacer algo de esto, determine dónde están sus cuellos de botella con herramientas como Firebug y, como otra persona mencionó, YSlow (recomiendo esta herramienta).
Como ya se mencionó, puedes usar la extensión de Firefox Yslow o PageSpeed. Pero también puede usar GTmetrix , un servicio en línea que GTmetrix su página con ambas herramientas.
Características que me gustan / uso:
- Presentación suave, limpia y utilizable.
- Comparación con otra página. Es realmente interesante ver dónde están tus amigos / competidores.
(por cierto, no estoy relacionado con gtmetrix!)
Definitivamente quiero ver el almacenamiento en caché, ya que los viajes de ida y vuelta a DB son caros. también, minify JS
El balanceo de carga ayudaría a reducir el tiempo de carga inmenso.
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 su aplicación está haciendo operaciones caras y lentas. Implementar el almacenamiento en caché cuando sea posible. Utilice un caché OpCode. Si esto todavía no es lo suficientemente rápido, considera invertir en más CPU o RAM o SSD (dependiendo de si eres CPU, IO o memoria enlazada)
Para las optimizaciones generales del servidor / cliente, consulte Yahoo YSlow! Guía del usuario .
Básicamente lo resume a:
- Minimizar solicitudes HTTP
- Utilice una red de entrega de contenido
- Agregar un Caducidad o un encabezado de control de caché
- Componentes Gzip
- Ponga StyleSheets en la parte superior
- Poner scripts en la parte inferior
- Evitar las expresiones CSS
- Hacer JavaScript y CSS Externo
- Reducir las búsquedas de DNS
- Reducir JavaScript y CSS
- Evitar redirecciones
- Eliminar secuencias de comandos duplicadas
- Configurar ETags
- Hacer AJAX Cacheable
- Utilice GET para solicitudes AJAX
- Reducir el número de elementos DOM
- No 404s
- Reducir el tamaño de la galleta
- Utilice dominios sin cookies para los componentes
- Evitar los filtros
- No escalar imágenes en HTML
- Hacer favicon.ico Pequeño y Cacheable
También vea los comentarios contribuidos a continuación, ya que contienen información adicional útil para otros usuarios.
Escribí algunas cosas sobre, ver:
Optimización de la prueba de velocidad de la página de Google
Hay dos lados que puede importar, al optimizar:
- El lado del servidor: lo que importa es generar la salida más rápido
- El lado del cliente: lo que importa es obtener todo lo que se debe mostrar más rápido.
Nota: nosotros, como desarrolladores, a menudo pensamos en optimizar primero el lado del servidor ... ¡Lo que en la mayoría de los casos solo representa menos del 10% del tiempo de carga de la página!
En el lado del servidor, generalmente querrá:
- perfil, para determinar qué es largo
- Optimiza tus consultas SQL, y reduce su número.
- usar caché
Para obtener más información, puede echar un vistazo a la respuesta que le di hace un tiempo a esta pregunta: Optimización de sitios web basados en Kohana para velocidad y escalabilidad
En el lado del cliente, las mayores ganancias generalmente se logran mediante:
- Reducir el número de solicitudes HTTP: la forma más fácil es reducir el número de archivos JS / CSS / images, combinando varios archivos en uno.
- Comprimir CSS / JS / HTML, utilizando por ejemplo el
mod_deflate
de Apache.
Sobre eso, hay un montón de cosas geniales en el Rendimiento Excepcional de Yahoo : han lanzado muchas developer.yahoo.com/performance/rules.html y herramientas, como YSlow .
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 fotogramas 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 de sistemas / pruebas, probablemente aún esté en la red local. Incluso sus servidores de producción son, con toda probabilidad, en el mismo continente.
Es posible que lo mismo no sea cierto para muchos de sus usuarios.
Por lo tanto las opciones que existen son:
- Averigüe preguntando a sus usuarios, si les resulta lento.
- Simule un entorno de alta latencia y pruébelo usted mismo (o su equipo de control de calidad)
- Conjetura
Este último no es recomendable.
Una opción en la que el libro de rendimiento de los Sitios Web de Yahoo más sagrado que tú (que sí, es un libro que puedes comprar) no menciona mucho es HTTPS. La mayoría de las aplicaciones web que manejan datos importantes se ejecutan principalmente o completamente a través de HTTPS, lo que cambia las reglas del juego bastante. Recuerda hacer todas las pruebas con él habilitado.
Las opciones simples que se me ocurren son:
- Gzip (x) html, por lo que un archivo comprimido debería llegar más rápidamente al usuario
- minimizar el CSS
- minimizar el JS
- usar caché cuando sea posible
- usar una red de entrega de contenido
- use una herramienta, como YSlow para identificar cuellos de botella y sugerencias adicionales
No use espacios en blanco en el código.
Para reducir el tráfico de la red, puede minimizar los archivos estáticos, como CSS y Javascript, y usar la compresión gzip en el contenido generado. También puede intentar usar herramientas como optipng para reducir el tamaño de las imágenes.
Sin embargo, el primer paso a tomar es analizar realmente lo que toma todo el tiempo, ya sea enviar los bits a través de la red o generar el contenido para enviar. No tiene sentido hacer que sus archivos CSS sean un 10% más pequeños si le toma un minuto generar cada página HTML.
Recientemente lo hicimos en nuestro sitio web. Aquí describimos nueve técnicas que parecían tener el mayor impacto con la menor dificultad: http://mentormate.com/blog/easy-ways-speed-website-load-time/
instale el plugin firebug y pagespeed siguiendo todas las directivas de pagepeed (hasta que sea posible) y esté contento http://code.google.com/intl/it/speed/page-speed/
De todos modos, la optimización más importante en mi experiencia es reducir el número de solicitudes HTTP a un mínimo ...