2008-12-11 7 views

Respuesta

3

Mejor es un poco subjetivo aquí, ya que hay varios factores a tener en cuenta (incluso más allá de los que la lista):

  1. tamaño comprimido no cuenta toda la historia, desde un compresor agresivo puede resultar en más lenta tiempo de ejecución debido al tiempo adicional necesario para ejecutar el código de desempaquetado antes de la interpretación del navegador.
    • Los errores son más fáciles de evitar cuando se controla el código de entrada: el uso prudente de los puntos y comas recorre un largo camino. Ejecute JSLint sobre su código y solucione los problemas informados.
    • El estilo y el tamaño del código en sí afectarán los resultados, por supuesto.
    • Y, por último, vale la pena tener en cuenta que la compresión gzip del lado del servidor siempre resultará en una descarga más pequeña que cualquier compresión de código, aunque algunas herramientas de compresión de código se combinarán con gzip con mayor eficacia.

Mi recomendación es ejecutar el código que va a comprimir a través de varios compresores (una herramienta de comparación automatizada como CompressorRater ayuda ...), y elegir en base a los resultados - recordando a probar, el perfil y compare los tiempos de carga de la página real después.

+0

por lo general es una buena idea para el rendimiento del tiempo y ver el efecto, pero en el caso de JSMin, Dojo ShrinkSafe, y el compresor YUI sólo disminuir el tamaño de archivo (sustituir símbolos, retire código muerto) - que no modifican la comportamiento. El empacador de Dean Edward aumenta el tiempo de procesamiento. – orip

0

Como usuario de Mootools, veo que Mootools ha reemplazado a Dean Edwards 'Packer por YUI Compressor. También recuerdo que hubo una discusión en Ajaxian.com donde Julien (autor del compresor) señaló las áreas donde YUI Compressor lo hizo mejor. Utilicé Compressor y nunca he visto ningún problema, pero nunca he estudiado a qué produce menos errores al ofuscar.

0

El compresor YUI se comprime de forma más segura y compacta que Packer. Creo que Packer necesita el JavaScript para estar perfectamente formado, de lo contrario causará un error de JavaScript cuando se cargue el script. Aún así, independientemente de cuál use, obtendrá el mayor aumento de rendimiento al comprimir su archivo Gz.

11

Una gran manera de comparar las mejores compresores es The JavaScript CompressorRater por Arthur Blake.

Lo que está por lo general interesa es el tamaño después de comprimir con gzip (se debe configurar el servidor web para realizar la compresión).

Los mejores resultados son por lo general de la YUI Compressor o Dojo ShrinkSafe. Las diferencias eran tan pequeñas que después de un tiempo dejé de comparar y solo uso el compresor YUI.

EDIT: desde el momento original en que se formuló esta pregunta, se han lanzado 2 nuevos minificadores. Ambos son al menos tan buenos como el YUI Compressor, si no mejor que ellos.

EDIT 2:

  • UglifyJS, elegido por el equipo de jQuery para el 1,5 lanzamiento oficial
2

Definitivamente echa un vistazo a Dojo Shrinksafe. Fue revisado recientemente y aparentemente el rendimiento ha sido mejorado.

+0

+1 porque no tengo que descargarlo como el de Yahoo. –

0

También hay un puerto de YUICompress for .NET (que incluye una tarea de compilación para TFS) en Codeplex.

2

Divulgación completa, estoy detrás de esto: http://www.toptensoftware.com/minime que hace la minificación, la ofuscación y un conjunto razonable de controles de estilo de pelusa. Actualmente produce un rendimiento menor que Yui, no tan bueno como Closure.

Cuestiones relacionadas