bzip2、pbzip2压缩工具比较

本文比较了Linux下的单线程压缩工具bzip2与多线程工具pbzip2。在Debian8.5上,pbzip2在开启3个线程时,无论是压缩文件还是目录,速度约为bzip2的3倍,压缩比相差不大。建议在需要提升压缩速度时使用pbzip2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[个人GitHub]中会有更多新鲜刚出炉的文章。

Linux版本:Debian8.5

pbzip2安装:apt-get install pbzip2

pbzip2详情请见:pbzip2的安装与使用

bzip2(单线程压缩工具)
# 压缩单个文件测试
# 单个文件大小
root@wing:/data # du -h 2016.sql
3.4G    2016.sql
# tar bzip2 压缩命令
time tar -jcf 2016.sql.bz2 2016.sql
# 单个文件压缩时间
real    10m7.996s
user    10m4.632s
sys 0m13.276s
# 压缩后文件大小
root@wing:/data # du -sh 2016.sql.bz2
220M    2016.sql.bz2

# 压缩目录测试
# 目录文件大小
root@wing:/data # du -sh 20161122/
6.9G    20161122/
# tar bzip 只能使用一个核进行压缩
time tar -jcvf 20161122_bzip.bz2 20161122/*
# 目录压缩时间
real    24m30.013s
user    22m51.936s
sys 0m23.872s
# 压缩后文件大小
root@wing:/data # du -h 20161122.bz2
356M    20161122.bz2
pbzip2(多线程压缩工具)
# 压缩单个文件测试
# 单个文件大小
root@wing:/data # du -h 2016.sql
3.4G    2016.sql
# pbzip2压缩命令
time pbzip2 -p3 -k 2016.sql 
# 单个文件压缩时间
real    3m22.909s
user    9m55.092s
sys 0m16.284s
# 压缩后文件大小
root@wing:/data # du -sh 2016.pbzip.bz2
221M    2016.pbzip.bz2

# 压缩目录测试
# 目录文件大小
root@wing:/data # du -sh 20161122/
6.9G    20161122/
# tar bzip pbzip 使用3个核进行压缩
time tar -c 20161122 | pbzip2 -p3 -c > 20161122.tar.bz2
# 目录压缩时间
real    7m31.688s
user    22m5.736s
sys 0m42.520s
# 压缩后文件大小
root@wing:/data # du -h 20161122.tar.bz2
358M    20161122.tar.bz2
总结:
bzippbzip(3个线程)
原文件大小3.4G
文件压缩时间( real)10m7.996s
文件压缩大小220M
原目录大小6.9G
目录压缩时间(real)24m30.013s
目录压缩大小356M

注意:压缩时间使用real计算,而不使用user+sys计算的原因是,多线程下user的时间是每个线程时间之和,与我们可以感知到的时间偏差较大,所以选择real,该服务器上都是初始化的job,所以real更接近用户感知的时间。

从上面表格可以得出,pbzip2开启3个线程压缩的前提下,无论是压缩单个文件还是压缩目录,时间上比单线程bzip2压缩快了接近3倍,而压缩比也基本相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值