本文总结工作中使用过的数据压缩方法,主要有zlib,qatzip,igzip等
最后还进行了针对大规模数据多线程解压缩加速的分析
zlib库
zlib是用于数据压缩的函数库,使用deflate算法
deflate...uLong sourceLen);
压缩方法,将源缓冲中的数据压缩并放入目的缓冲区
注意目的缓冲区的大小有可能比压缩前还要大,因此destLen要留够空间,至少比sourceLen加12字节之后还大0.1%
返回...example.c compress.c
inflateInit() + inflate() + inflateEnd()
三个函数完成uncompress功能
gz开头的函数,用来操作gz文件,类似stdio调用...,如果gzopen,gzwrite等
简单的压缩示例代码:
#include zlib.h>
int gzCompress(Bytef *data, uLong ndata, Bytef *zdata...comment 字段就可以实现index功能,步骤如下:
压缩前,首先添加字段:comment添加block的ID,extra field添加压缩前和后的bytes大小;以zlib压缩举例
压缩后,更新