压缩算法比较2

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

压缩对象是一个大小为1.7M的csv文件,总共6829行,每行74列,即一行大小为261byte
使用全Double类型(一个Double为8字节)保存一行数据的话,一行为592byte
使用更适合的数据类型时,一行大小为79byte

当Gzip压缩算法压缩行数达到250行时,压缩比例达到3:1,所以原大小与压缩后大小比为:261:26 = 10%

更好的数据类型指:
一行中有只有0和1的boolean类型15个,将15个用一个合为一个String,并转存为一个short类型
一位小数点或两位小数点的有17个,通过各自的编码方式转存为short类型,其中一个在1~10以内的转存为byte类型
通过这种这两种方式,将一行数据降至79byte大小

压缩行数与压缩比例的比较
压缩算法比较2_第1张图片
微信图片_20170905045433.png

由上图可知,bzip与gzip压缩比例在250行时都达到3:1

压缩行数与压缩时间
压缩算法比较2_第2张图片
微信图片_20170905045429.jpg

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

压缩行数与压缩性价比
压缩算法比较2_第3张图片
微信图片_20170905045422.jpg

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

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

你可能感兴趣的:(压缩算法比较2)