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(包含源代码)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值