论坛首页 Web前端技术论坛

几种脚本文本压缩方式压缩比率和解压性能的比较

浏览 10239 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-23  
刚刚修正了一个JSA的bug。

顺便测试了一下文本压缩的性能,和纯packer 压缩,ShrinkSafe+packer压缩。
压缩大小:
jquery-jsa-s.js(JSA的语法压缩):29766
jquery.compressed.js(ShrinkSafe语法压缩):33992

jquery-jsa-st.js(JSA的语法压缩+文本压缩):19526
jquery-packer.js(Packer文本压缩):20977
jquery.compressed-packer.js(ShrinkSafe语法压缩+Packer文本压缩):21839

有点奇怪的是,文本压缩和语法压缩是有一定互补性的,但是ShrinkSafe+Packer比单纯的Packer文本压缩效率还低??
我想可能是ShrinkSafe做的一些语法补全(可省略的 {、}、;、),jQuery编码的风格导致。

Firefox测试数据(10次压缩时间的毫秒数,连续5回测试数据)

jquery-jsa-st.js:784
jquery-packer.js:1265
jquery.compressed-packer.js:1529

jquery-jsa-st.js:718
jquery-packer.js:922
jquery.compressed-packer.js:766

jquery-jsa-st.js:753
jquery-packer.js:872
jquery.compressed-packer.js:828

jquery-jsa-st.js:1438
jquery-packer.js:1484
jquery.compressed-packer.js:1735

jquery-jsa-st.js:687
jquery-packer.js:1236
jquery.compressed-packer.js:1234


IE5 测试数据(连续三回测试数据)

jquery-jsa-st.js:766
--------------------------------------------------------------------------------
jquery-packer.js:9765
--------------------------------------------------------------------------------
jquery.compressed-packer.js:10547


jquery-jsa-st.js:671
--------------------------------------------------------------------------------
jquery-packer.js:9002
--------------------------------------------------------------------------------
jquery.compressed-packer.js:10265


jquery-jsa-st.js:704
--------------------------------------------------------------------------------
jquery-packer.js:8232
--------------------------------------------------------------------------------
jquery.compressed-packer.js:10314

总结

文本压缩是个比较耗时的操作,像JQuery这样大的类库普遍需要接近100毫秒的解压时间。
如果需要兼容IE5这种老古董,那么最好不要用packer的文本压缩,太耗时。
JSA1 对文本压缩做了些改进,表现还可以。

如果要计较脚本文本压缩后的解压开销,建议使用JSA的语法压缩,配合服务器端的gzip压缩。
不推荐dojo 的ShrinkSafe,原因是它的几个安全问题。
   发表时间:2007-05-23  
测试代码
  • dest.rar (70.2 KB)
  • 描述: 测试例子
  • 下载次数: 121
0 请登录后投票
   发表时间:2007-05-24  
越做越精了。支持!
另:html文件中的javascript片段如何压缩?
0 请登录后投票
   发表时间:2007-06-10  
怎么没找到Javascritpt analyser的下载地址呢?
0 请登录后投票
   发表时间:2007-06-10  
http://sourceforge.net/project/showfiles.php?group_id=175776
0 请登录后投票
   发表时间:2007-06-10  
期待楼主的 1.0 alpha bug fixed 4 版本,也许改换成 beta 版了吧?哈哈。
0 请登录后投票
   发表时间:2007-06-10  
^_^,两三天后,只是ui上的一些改进:)
0 请登录后投票
   发表时间:2007-06-10  
能像 JsMinGUI 那样合并多个js文件了吗?
0 请登录后投票
   发表时间:2007-06-12  
补充一下Zhou Renjian的.LZ77JSCompressor测试结果,据说解压比率非常诱人。

jquery压缩后大小 21,866,虽然在这个例子上,
配合JSA语法压缩后,可以下降到:20,012
虽然在这个例子中,相比JSA的综合压缩结果19,526逊色一些,但是根据andot对phprpc的测试结果,LZ77JSCompressor有明显优势,从19k下降到15k。
看来,压缩效果还是要因脚本而异:)

可以说JSA的文本压缩相对于LZ77JSCompressor来说,显得太简陋。
不过,对于javascript来说,简陋也不见得一定是坏事,就说解压时间,LZ77JSCompressor大概是jsa的三倍。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics