gzip和bzip压缩比以及压缩时间对比

本文对比了gzip和bzip2对1G日志文件的压缩效果,发现两者在默认压缩比(-6)和最高压缩比(-9)之间,压缩时间差异显著,而压缩比差异较小。对于追求效率而言,选择最低压缩比(-1)可以大幅减少压缩和解压缩时间。bzip虽然压缩比稍高,但其耗时通常是gzip的两倍。在考虑性能和时间成本时,应根据实际需求选择合适的压缩比。

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

对一个1G的日志文件进行压缩,整个压缩期间gzip和bzip2都能将1个核利用到100%。

首先将该日志文件读入页面缓存: 可以cat该文件也可以用vmtouch -t来实现

先检查该文件已经在page cache中

[root@er01 ~]# vmtouch /serverInfo_2019-02-11_7.log
           Files: 1
     Directories: 0
  Resident Pages: 262145/262145  1G/1G  100%
         Elapsed: 0.044465 seconds

默认压缩比 -6

[root@er01 ~]# time gzip -c -6 /serverInfo_2019-02-11_7.log > /tmp/1.gz

real    0m32.167s
user    0m31.267s
sys 0m0.691s
[root@er01 ~]# time bzip2 -c -6 /serverInfo_2019-02-11_7.log > /tmp/1.bz

real    2m11.389s
user    2m10.667s
sys 0m0.697s

检查压缩比

[root@er01 ~]$ ll -h /tmp/1*
-rw-rw-r-- 1 root root 190M Mar 11 11:27 /tmp/1.bz
-rw-rw-r-- 1 root root 244M Mar 11 11:29 /tmp/1.gz

最慢压缩(压缩比-9)

[root@er01 ~]# time gzip -c -9 /serverInfo_2019-02-11_7.log > /tmp/1.gz

real    1m7.961s
user    1m7.119s
sys 0m0.739s
[root@er01 ~]# time bzip2 -c -9 /serverInfo_2019-02-11_7.log > /tmp/1.bz

real    2m23.701s
user    2m23.016s
sys 0m0.675s

检查压缩比

[root@er01 ~]$ ll -h /tmp/1*
-rw-rw-r-- 1 root root 182M Mar 11 11:27 /tmp/1.bz
-rw-rw-r-- 1 root root 240M Mar 11 11:29 /tmp/1.gz

最快压缩(压缩比-1)

[root@er01 ~]# time gzip -c -1 /serverInfo_2019-02-11_7.log > /tmp/1.gz

real    0m16.090s
user    0m15.403s
sys 0m0.672s
[root@er01 ~]# time bzip2 -c -1 /serverInfo_2019-02-11_7.log > /tmp/1.bz

real    1m48.986s
user    1m48.012s
sys 0m0.878s

检查压缩比

[root@er01 ~]$ ll -h /tmp/1*
-rw-rw-r-- 1 root root 234M Mar 11 11:27 /tmp/1.bz
-rw-rw-r-- 1 root root 297M Mar 11 11:29 /tmp/1.gz

结论

  1. 一般情况下,默认压缩比和最佳压缩比(-6和-9):没必要为了增加那一点点的压缩比(1G的原文本文件最终只差了几兆)而增加非常明显(甚至翻倍)的压缩/解压缩时间
  2. 默认压缩比和最小压缩比(耗时最短)之间:如果能容忍低一点的压缩比(1G原文本文件最终差4 5十兆)同时注重耗时的话(压缩/解压缩耗时能大幅下降甚至下降一半),可以选择最地的压缩比来获得最高的处理效率
  3. bzip的压缩比在同等级别下都要略高于gzip,但是耗时却明显的高于gzip(基本2倍上下)
  4. 不同的压缩比下,gzip的耗时敏感度要高于bzip,即不同压缩比下,gzip耗时的增减幅度要大于bzip(但都远小于bzip)

转载于:https://blog.51cto.com/kaifly/2361195

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值