现在的位置: 首页 > 综合 > 正文

Java压缩类库的使用-5.性能检测

2013年11月03日 ⁄ 综合 ⁄ 共 9571字 ⁄ 字号 评论关闭

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish

)。

  在选择压缩、打包算法的时候,不仅仅要选择算法,还需要选择用哪个实现类库,不同的实现类库实现效率不同,默认压缩比率不同。为了测试JDK、Ant、commons-compress在默认情况下的效率,设计了如下程序:(来源:http://blog.csdn.net/inkfish)

 

100M大小随机字符串文件生成程序:(来源:http://blog.csdn.net/inkfish)

上面的代码用于生成随机的半角字符组成的文本文件,大小为100M(1024*1024*100byte)。(来源:http://blog.csdn.net/inkfish)

性能测试程序:(来源:http://blog.csdn.net/inkfish)

测试环境:(来源:http://blog.csdn.net/inkfish)

硬件:Dell Latitude E6400(Intel Core2 Duo P8600、2G内存、7200转高速硬盘)(来源:http://blog.csdn.net/inkfish)

软件:Windows XP SP3(来源:http://blog.csdn.net/inkfish)

类库:JDK 1.6.0_11、Ant 1.7.0、commons-compress 1.0、commons-io 1.4、commons-lang 2.4(来源:http://blog.csdn.net/inkfish)

原始测试结果:(来源:http://blog.csdn.net/inkfish)

整理后测试结果:(来源:http://blog.csdn.net/inkfish)

实现类 原始文件大小 压缩后文件大小 压缩耗平均时 解压缩平均耗时 平均总耗时
CommonsZipCompress 100 83.213 10451.55 6602.28 17053.84
JdkZipCompress 100 83.213 10645.64 6665.09 17310.72
JdkGZIPCompress 100 83.213 10730.44 6715.90 17446.34
JdkZLIBCompress 100 83.213 11907.67 7120.64 19028.31
AntZipCompress 100 83.213 10507.71 10176.88 20684.58
AntBzip2Compress 100 82.999 35818.18 27771.20 63589.38
CommonsGZIPCompress 100 82.999 35693.11 28079.96 63773.08
CommonsBZip2Compress 100 83.213 113754.73 104715.95 218470.67
 
实现类 原始文件大小 压包后文件大小 打包耗平均时 解包平均耗时 平均总耗时
AntTarCompress 100 100.010 5745.56 4462.98 10208.55
CommonsTarCompress 100 100.010 5501.18 5807.38 11308.55
CommonsArCompress 100 100.000 6104.93 5786.56 11891.49
CommonsCPIOCompress 100 100.000 6636.72 6349.29 12986.01

结论:(来源:http://blog.csdn.net/inkfish)

1.在各自默认压缩率下,commons-compress包中zip算法具有较快的压缩速度,ant包中tar具有较快的打包速度;(来源:http://blog.csdn.net/inkfish)

2.commons-compress中的gzip压缩速度远远慢于jdk中的gzip,虽然压缩率比jdk高;(来源:http://blog.csdn.net/inkfish)

3.ant包中bzip2因为压缩正确性有问题,得到的数据不具有可比性。(来源:http://blog.csdn.net/inkfish)

4.由于被压缩文件内容由程序自动随机生成,在应用的具体环境中,压缩率、压缩时间肯定有所不同。这里提供的源码特别是测试程序经修改能够针对具体文件进行测试,可以稍微弥补一些不足。(来源:http://blog.csdn.net/inkfish)

5.因为测试目的原因,不对压缩率进行评价。5(来源:http://blog.csdn.net/inkfish)

抱歉!评论已关闭.