¿Por qué es beneficiosa la minificación HTML / Javascript?

13

¿Por qué es beneficiosa la minificación HTML / Javascript cuando el protocolo HTTP ya admite la compresión de datos gzip?

Me doy cuenta de que la minificación de Javascript / HTML tiene el potencial de reducir significativamente el tamaño de los archivos de Javascript / HTML eliminando espacios en blanco innecesarios, y quizás cambiando el nombre de las variables a unas pocas letras cada una, pero el algoritmo LZW no lo hace especialmente bien cuando hay muchos caracteres repetidos (por ejemplo, ¿mucho espacio en blanco?)

Me doy cuenta de que algunas herramientas de minificación de Javascript hacen más que solo reducir el tamaño. El compilador de cierre de Google, por ejemplo, también trata de mejorar el rendimiento del código incorporando funciones y haciendo otros análisis. Pero el propósito primario de la minificación de Javascript es generalmente reducir el tamaño del archivo.

También me doy cuenta de que hay otras razones por las que es posible que desee reducir su tamaño aparte de la ejecución, como la ofuscación de código. Pero, una vez más, esa razón no se enfatiza tanto como la ganancia de rendimiento y la reducción del tamaño del archivo. Por ejemplo, Closure Compiler no se anuncia como una herramienta de ofuscación, sino como un reductor de tamaño de código y un mejorador de velocidad de descarga.

Entonces, ¿cuánto rendimiento realmente ganas con la minificación de Javascript / HTML cuando ya estás significativamente reduciendo el tamaño del archivo con la compresión gzip?

    
pregunta Channel72 29.06.2012 - 13:20

4 respuestas

10

Porque la compresión gzip tiene su propia sobrecarga (CPU). La minificación es la primera compresión de "baja capacidad" que se puede aplicar sin que se produzca el impacto de la CPU.

Esto puede parecer insignificante, sin embargo, los números pronto tendrán sentido cuando se trata de una escala.

Además, con minification tienes menos para gzip.

    
respondido por el Darknight 29.06.2012 - 13:22
5

Minification + gzip generalmente da mejores resultados, porque gzip es un algoritmo general, no específicamente adaptado a una entrada u otra, mientras que el minificador es consciente de su contenido y puede hacer el trabajo que el algoritmo de compresión general no puede. También puede permitirse tener pérdidas (piense: elimine por completo los comentarios y los espacios en blanco, eso es 100% de compresión para estos datos, ¿cómo puede mejorar eso?), Mientras que la compresión general no puede.

    
respondido por el Oleg V. Volkov 29.06.2012 - 14:10
2

Es posible que no obtengas demasiados beneficios de rendimiento, pero aún así reducirás el uso de ancho de banda. Si puede eliminar algunos kb de sus archivos js (y css) a través de la minificación (y el uso de sprites css para reducir la cantidad de solicitudes) y está atendiendo a miles de usuarios al día, después de un mes reducirá significativamente su ancho de banda.

    
respondido por el Steve Whitehouse 29.06.2012 - 15:52
1

Lo más costoso que haces en una aplicación web es enviar las cosas por el cable. Enviar menos material por cable es casi siempre una ganancia neta si está pagando en ciclos de CPU.

Además, no tengo nada científico que respalde esto, pero esperaría que las herramientas de minificación probablemente puedan comprimir JavaScript mejor que gzip si, por ninguna otra razón, las herramientas de minificación sean específicas del dominio y se puedan ajustar para comprimir mejor javascript mientras que gzip es una herramienta genérica y se comprometerá con el medio.

    
respondido por el Wyatt Barnett 29.06.2012 - 16:06

Lea otras preguntas en las etiquetas