各算法压缩行数与压缩比例的比较
声明
压缩对象是一个大小为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大小
压缩行数与压缩比例的比较
由上图可知,bzip与gzip压缩比例在250行时都达到3:1
压缩行数与压缩时间
由上图可知,bzip压缩耗时最多,并随着压缩行数增加而减少,但仍高于gzip
压缩行数与压缩性价比
由上图可知,gzip与snappy压缩性价比相近,而bzip压缩性价比在行数达到150时接近bzip并收敛