各算法压缩行数与压缩比例的比较
声明
压缩对象是一个大小为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并收敛
网友评论