压缩算法的比较

各算法压缩行数与压缩比例的比较
声明

压缩对象是一个大小为1.7M的csv文件,总共6829行,每行74列,即一行大小为261byte
使用全Double类型(一个Double为8字节)保存一行数据的话,一行为592byte
使用更适合的数据类型时(-125-124用Byte保存,浮点型用Float保存,其余用short保存,各别较大的整数用int保存),一行为143byte

以下图分别是使用Double类型时的压缩算法各项比较
各算法压缩行数与压缩比例的比较
image.png

由上图可知当压缩行数为40行时,bzip压缩比例达到11,gzip压缩比例达到9

压缩算法比较图3.png

由上图知,当压缩行数为150时,gzip压缩比例为10并收敛,而bzip压缩比例在行数为500时达到18(行数为1000时压缩比例为20,此处不画出)

各算法压缩行数与压缩时间的比较
压缩时间比较.png

由上图知,除bzip外,其余算法压缩时间变化不大,且远下于bzip,bzip算法随着压缩行数增加,压缩时间减少但仍然高于gzip

各算法压缩行数与压缩性价比(性价比:压缩时间/压缩比例),性价比越低越好
压缩性价比.png
压缩性价比图2.png

根据数据以及以上两图,gzip的压缩性价比最好,bzip随着压缩行数增加,性价比提高,但仍比gzip差

通过上面比较可知,

压缩能力Bzip > Gzip ≈ Snappy ≈ Lz4 ≈ Lzo
耗费时间 Bzip > Gzip ≈ Snappy ≈ Lz4 ≈ Lzo
压缩性价比 Gzip > Snappy ≈Lz4 ≈ Lzo >Bzip

使用更好的数据类型再进行一次比较(只比较Snappy、Bzip、Gzip)

压缩行数与压缩比例的比较
更好数据类型压缩算法(比例).png

由上图可知,bzip压缩比例最好,在500行时达到5(不会再变化),gzip次之,在30行时达到3并收敛

压缩行数与压缩时间
更好数据类型压缩时间.png

由上图可知,bzip压缩耗时最多,并随着压缩行数增加而减少,但仍高于gzip

压缩行数与压缩性价比
更好数据类型性价比.png

由上图可知,gzip与snappy压缩性价比相近,而bzip压缩性价比在行数达到150时接近bzip并收敛

总结,当使用Double类型时,因为许多孔空间是浪费或者重复的,所以压缩比例可以达到很高,其中gzip压缩性价比最好,但bzip可达到20的比例

当使用更好的数据类型时,压缩比例教差,其中gzip压缩性价比最好,但bzip随着行数增加,压缩性价比也会提高

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各算法压缩行数与压缩比例的比较 声明 压缩对象是一个大小为1.7M的csv文件,总共6829行,每行74列,即一行...
    泽林呗阅读 1,013评论 0 0
  • HADOOP与HDFS数据压缩格式 1、cloudera 数据压缩的一般准则 一般准则 是否压缩数据以及使用何种压...
    VentLam阅读 7,954评论 0 8
  • 单机存储引擎就是哈希表、B树等数据结构在机械磁盘、SSD等持久化介质上的实现。单机存储系统是单机存储引擎的一种封装...
    olostin阅读 2,583评论 0 5
  • 为什么要整理一下Linux下的打包和压缩工具呢?原因很简单,因为遇到问题了:游戏服务器可执行文件、配置和各种资源文...
    davidpp阅读 10,000评论 0 18
  • 当大片连续区域进行数据存储并且存储区域中数据重复性高的状况下,数据适合进行压缩。数组或者对象序列化后的数据块可以考...
    尧字节阅读 2,075评论 0 1