libzling(https://github.com/richox/libzling)是一款高性能的数据压缩库,在压缩时间和压缩率上都超过了流行的zlib/gzip。libzling使用的是ROLZ字典算法和Polar编码,这两个算法的说明可以参考这两篇文章:http://www.cnblogs.com/richselian/archive/2012/11/10/2764427.htmlhttp://www.cnblogs.com/richselian/archive/2012/11/09/2763162.html

  libzling使用的是1阶ROLZ字典编码和0阶Polar编码,在权威的 Large Text Compression Benchmark 测评上,压缩时间、解压时间和压缩率都分别超过gzip约50%、20%、10%左右。libzling最适用于一般的文本数据,对大量冗余的文本日志数据性能更佳,压缩率可以压缩gzip的30%以上。

  使用libzling的方式很简单,首先从github上clone最新的版本:

git clone https://github.com/richox/libzling

  然后cd到build目录下,使用cmake编译(cmake的具体安装方法可以Google):

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make
make install

  以下是最简单的使用libzling的方式,具体的接口文档现在还没有完成,可以参考源代码中的demo程序:./sample/zling.cpp

  代码可以使用g++编译,编译选项加上-lzling即可。

 #include "libzling.h"

 int main() {
// compress
{
FILE* fin = fopen("./1.txt", "rb");
FILE* fout = fopen("./1.txt.zlng", "wb"); baidu::zling::FileInputer inputer(fin);
baidu::zling::FileOutputer outputer(fout); baidu::zling::Encode(&inputer, &outputer);
fclose(fin);
fclose(fout);
} // decompress
{
FILE* fin = fopen("./1.txt.zlng", "rb");
FILE* fout = fopen("./2.txt", "wb"); baidu::zling::FileInputer inputer(fin);
baidu::zling::FileOutputer outputer(fout); baidu::zling::Decode(&inputer, &outputer);
fclose(fin);
fclose(fout);
}
return ;
}

最新文章

  1. SQL Server存储过程
  2. 手机CPU和GPU厂商
  3. 让Visual Studio Code对jQuery支持智能提示!
  4. Spring bean 实现初始化、销毁方法的方式及顺序
  5. WebGL 3D on iOS8 正式版
  6. Spring 实践 -AOP
  7. CentOS 普通用户设置sudo权限
  8. uva 10047 The Monocycle(搜索)
  9. DuiVision开发教程(17)-对话框
  10. Enable SPI 1.0 and 1.1 with device tre overlays on BeagleBone
  11. javabean+servlet+jsp程序_个人辛苦探索
  12. C#操作word封装
  13. CentOS6.4下安装JDK1.6
  14. Java学习之位运算和逻辑运算符
  15. mapxtreme演示V1.3
  16. 近期unity ios接入的事情
  17. Raphael的transform用法
  18. Linux系统编程----僵尸进程
  19. How to ssh
  20. ftp服务器搭建流程详解

热门文章

  1. 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组
  2. C++标准转换运算符
  3. 1,SFDC 管理员篇 - 基本设置
  4. 【MySQL】InnoDB: Error: checksum mismatch in data file 报错
  5. 转:RealThinClient LinkedObjects Demo解析
  6. Java和C++中的static
  7. 通过WinForm控件创建的WPF控件无法输入的问题
  8. Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207
  9. 为什么V8引擎这么快?
  10. VC++模态对话框和非模态对话框