2010-03-01 21 views

Respuesta

21

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:

  1. Minimizar las solicitudes HTTP
  2. utilizar una red de distribución de contenidos
  3. Añadir una fecha de vencimiento o un encabezado Cache-Control
  4. Componentes Gzip
  5. Coloque StyleSheets en la parte superior
  6. Coloque las secuencias de comandos en la parte inferior
  7. Evitar CSS Expresiones
  8. Hacer JavaScript y CSS externa
  9. Reducir búsquedas DNS
  10. Minify JavaScript y CSS
  11. Evitar redirige
  12. quitar guiones de duplicados
  13. Configurar ETags
  14. Hacer AJAX cacheable
  15. Usar GET para solicitudes AJAX
  16. reducir el número de elementos DOM
  17. No 404
  18. Reducir el tamaño de la galleta
  19. Dominios
  20. uso de cookies libres para Componentes
  21. evitar que los filtros
  22. no escalan imágenes en HTML
  23. 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.

+3

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. –

+1

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

+1

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 –

3

Antes de intentar cualquier optimización primero necesita poder crear un perfil, obtener FireBug para Firefox. A continuación, puede ejecutar algunos análisis que le dirán exactamente qué hacer usando YSlow. Las cosas fundamentales que debe hacer se enumeran here.

2

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).
2

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.

2

Las opciones simples que se me ocurren son:

  1. Gzip (X) HTML, por lo que un archivo comprimido debe llegar más rápidamente al usuario
  2. Minify la CSS
  3. Minify la JS
  4. use el almacenamiento en caché donde sea posible
  5. utilice una red de entrega de contenido
  6. utilice una herramienta, como yslow para identificar los cuellos de botella y otras sugerencias
+0

@bn, de hecho, editado para corregir. Gracias =] –

2

definitivamente quiero ver el almacenamiento en caché, ya que los viajes redondos a DB son caros. también, minify JS

0

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.

-3

El equilibrio de carga ayudaría a reducir el tiempo de carga inmensas.

+2

No, no lo haría, en casi todos los casos. – MarkR

1

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.

2

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 ...

0

No utilice espacios en blanco en el código.

1

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!)

Cuestiones relacionadas