Java多线程的zip工具(2011年10月18日更新-提供源码下载)

最近使用Java做了个小小的多线程的zip工具,测试了一下:

测试文件夹包含7307个文件,104的目录,大小246 MB,占用空间402 MB,测试电脑为Inter Pentium Dual CPU E2180 2GHz,896M内存,硬盘5400转

单线程:26047ms(和使用WinRAR压缩文件夹为zip格式速度差不多)

 双线程:19328ms

三个线程:14328ms (速度最快)

四个线程:14953ms

五个线程:30641ms (速度最慢)

测试机在运行五个线程时鼠标反应迟钝,硬盘狂响,压缩文件主要瓶颈在硬盘,zip压缩很耗CPU,但是压缩好的数据写盘迟钝造成线程开到一定数目性能直线下降,稍后会在四核机器上对更大的文件夹进行测试!

压缩时间可减少一半,对这个结果不是特别满意,zip压缩后数据的写盘算法再改进一下,看能否进一步提升!

近期会完善这个工具,适当时候发布!

2011年10月18日更新:

增加了输出流的Buffer到1M,3个线程针对上述的文件夹压缩时间缩短到9秒,由于目前的压缩工具是将文件夹按照线程数目分块压缩,所以有几个线程就压缩为几个文件,默认按照当前电脑的CPU数目分块,单CPU的机器最少用两个线程,3个线程压缩可通过-n3在命令行输入,源代码还在变化中,现提供当前的源代码,这个工具目前很简陋,请各路高手多提宝贵意见:

jzip-1.0.zip(包含源代码)

阅读更多
个人分类: Java
上一篇对Java虚拟机垃圾回收机制的思考
下一篇对最新版的JavaFX2.0的第一印象
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭