zoukankan      html  css  js  c++  java
  • lz4,pigz,gzip 3者比较

    一、压缩
    (1.1)使用gzip进行打包:
    # time tar -zcf tar1.tar binlog*
    real 0m48.497s
    user 0m38.371s
    sys 0m2.571s

    (1.2)使用pigz压缩,同时设置最高压缩速度(-1)
    # time tar -cv binlog* | pigz -1 -p 24 -k >pigz1.tar.gz
    real 0m10.715s
    user 0m17.674s
    sys 0m1.699s

    (1.3)  使用pigz压缩,默认压缩比

    # time tar -cv binlog* | pigz -p 24 -k >pigz2.tar.gz
    real 0m22.351s
    user 0m39.743s
    sys 0m1.341s

    (1.4)使用pigz压缩,同时设置最高压缩比(-9)
    # time tar -cv binlog* | pigz -9 -p 24 -k >pigz3.tar.gz
    real 0m46.975s
    user 1m26.118s
    sys 0m1.473s


    (1.5) 使用lz4压缩,同时设置最高压缩速度(-1)
    # time tar -cv binlog* | lz4 -1 > lz41.tar.gz
    real 0m4.969s
    user 0m2.953s
    sys 0m1.199s


    (1.6) 使用lz4压缩,使用默认设置
    # time tar -cv binlog* | lz4  > lz42.tar.gz
    real 0m4.447s
    user 0m2.958s
    sys 0m1.185s


    (1.7) 使用lz4压缩,同时设置最高压缩比(-9)
    # time tar -cv binlog* | lz4 -9 > lz43.tar.gz 
    real 0m56.144s
    user 0m54.300s
    sys 0m1.301s


    以上方式的打包压缩后文件大小
    127M tar1.tar              (1.1)
    152M pigz1.tar.gz          (1.2)
    127M pigz2.tar.gz          (1.3)
    123M pigz3.tar.gz          (1.4)
    216M lz41.tar.gz           (1.5)
    216M lz42.tar.gz           (1.6)
    163M lz43.tar.gz           (1.7)


    二、解压缩:
    (2.1)直接使用tar -xvf解压缩tar文件
    # time tar -xvf tar1.tar
    real 0m42.329s
    user 0m9.134s
    sys 0m2.704s


    (2.2) 直接使用tar -xvf解压缩pigz打包的文件(pigz压缩的文件可以使用tar直接解压缩)
    # time tar -xvf pigz1.tar.gz
    real 0m42.048s
    user 0m9.818s
    sys 0m2.927s


    (2.3)使用pigz -d对pigz压缩文件进行解压
    # file=pigz1.tar && pigz -k -d $file.gz && time tar -xf $file
    real 0m56.706s
    user 0m0.074s
    sys 0m2.588s


    (2.4)不可使用tar -xvf解压lz4压缩的文件
    # time tar -xvf lz41.tar.gz
    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now


    (2.5)使用lz4 -d对lz4压缩文件进行解压
    # file=lz41.tar && lz4 -d $file.gz $file && time tar -xf $file
    Successfully decoded 1203701760 bytes                                          
    real 0m59.851s
    user 0m0.064s
    sys 0m2.699s


    三、结论:
    从上列数据可以总结出以下结论:
    1.使用pigz指命明显比gzip快(网上说法是5倍),但同时CPU消耗也比较大(网上说法是8倍左右),两者压缩后文件大小无异。
    2.使用lz4能获得很好的压缩速度,但压缩的文件比用gzip和pigz稍大。
    3.pigz压缩的文件可以直接用tar -x指令解压缩,而使用lz4压缩的文件不可。

    从实现数据来看,如果目前系统想提高压缩解压缩速率,可以考虑切换到pigz压缩方式,不过会增大cpu消耗。在对压缩效率要求较高、但对短时间内CPU消耗较高不受影响的场景,使用pigz非常合适。

  • 相关阅读:
    Django项目后台不挂断运行
    Django---进阶16<XSS攻击>
    Django---进阶15
    Linux开启MySql远程连接
    Django---进阶14
    Django---进阶13
    微信公众号下载文件(避开微信浏览器的文件下载方法)
    ES5的匿名函数对应ES6的箭头函数
    ES6 数值和布尔值的解构赋值
    ES6--in的用法
  • 原文地址:https://www.cnblogs.com/archoncap/p/4847670.html
Copyright © 2011-2022 走看看