哪个javascript缩小库产生更好的结果?

时间:2008-12-11 20:46:06

标签: javascript benchmarking jscompress minify

Yahoo! UI CompressorDean Edwards Packerjsmin之间产生更好的结果,无论是在产生足迹方面还是在混淆时产生的错误都更少。

8 个答案:

答案 0 :(得分:11)

比较最好的压缩机的好方法是Arthur Blake The JavaScript CompressorRater

您通常感兴趣的是使用GZIP压缩后的大小(您应该配置您的Web服务器以执行压缩)。

最佳结果通常来自YUI CompressorDojo ShrinkSafe。差异非常小,过了一段时间我停止比较,我只是使用YUI Compressor。

修改 自问这个问题的原始时间以来,已经发布了2个新的缩放器。它们通常至少与YUI Compressor一样好,如果不是更好的话。

编辑2:

  • UglifyJS,由jQuery团队为官方1.5版本选择

答案 1 :(得分:3)

这里有点主观,因为有多个因素要考虑(甚至超出你列出的因素):

  1. 压缩大小并不能说明整个故事,因为由于在浏览器解释之前运行解包代码所需的额外时间,积极的压缩器会导致运行时性能降低。
    • 当您控制输入代码时,最容易避免错误 - 明智地使用分号会有很长的路要走。对代码运行JSLint,并修复报告的任何问题。
    • 当然,代码本身的样式和大小会影响结果。
    • 最后,值得注意的是,服务器端gzip压缩总是会导致比任何代码压缩更小的下载,尽管一些代码压缩工具将更有效地与gzip结合。
  2. 我的建议是运行您打算通过多个压缩器压缩的代码(自动比较工具,如CompressorRater帮助...),并根据结果进行选择 - 记住测试,分析和比较之后的实际页面加载时间。

答案 2 :(得分:2)

绝对查看Dojo Shrinksafe。它最近被重新加工,显然性能得到了改善。

答案 3 :(得分:2)

完全披露,我支持这个:http://www.toptensoftware.com/minime进行缩小,混淆和一套合理的lint样式检查。目前它的产量比Yui小,不如Closure好。

答案 4 :(得分:1)

这是一个老问题,Google Closure Compiler当时不存在。我还没有使用它,但看起来非常好。

答案 5 :(得分:0)

作为Mootools的用户,我注意到Mootools已经取代了YUI Compressor的Dean Edwards的Packer。我还记得在Ajaxian.com上有一个讨论,其中Julien(Compressor作者)指出了YUI Compressor做得更好的领域。我使用Compressor并且从未见过任何问题,但我从未研究过在混淆时产生较少错误的问题。

答案 6 :(得分:0)

YUI Compressor压缩比Packer更安全,更紧凑。我相信Packer需要完美地形成JavaScript,否则在加载脚本时会导致JavaScript错误。尽管如此,无论您使用哪种方式,都可以通过Gzipping压缩文件获得最大的性能提升。

答案 7 :(得分:0)

Codeplex上还有一个YUICompress for .NET的端口(包括TFS的构建任务)。