libzling(https://github.com/richox/libzling,求观看[watch],求星[star],求叉[fork])是一款高性能的数据压缩库,在压缩时间和压缩率上都超过了流行的zlib/gzip。libzling使用的是ROLZ字典算法和Polar编码,这两个算法的说明可以参考这两篇文章:

  http://www.cnblogs.com/richselian/archive/2012/11/10/2764427.html

  http://www.cnblogs.com/richselian/archive/2012/11/09/2763162.html

  上次发布之后,陆续收到了很多朋友的反馈,深感到作为一个压缩库,除了性能保证之外,还应提供一个压缩参数,让用户可以自由选择高速/高压缩比的方式。所以本次更新加上了5级压缩参数:

  • 0级:对每个位置做2次匹配。
  • 1级:对每个位置做4次匹配。
  • 2级:对每个位置做6次匹配 + 1次懒惰匹配(偏移量+1)。
  • 3级:对每个位置做8次匹配 + 2次懒惰匹配(偏移量+1) + 1次懒惰匹配(偏移量+2)。
  • 4级:对每个位置做32次匹配 + 8次懒惰匹配(偏移量+1) + 4次懒惰匹配(偏移量+2)。

  这5种压缩模式的不同点仅仅在于ROLZ压缩算法寻找匹配的阶段,它们可以共用同一个解压算法。在对wikipedia数据(enwik8)的测评中,0级模式达到了速度超gzip约3.5倍,压缩率超gzip约10%的成绩。其它几个模式的速度也都超过了gzip,同时达到了更高的压缩率(4级的压缩率超gzip约20%)。

  本次更新后的接口和原接口是兼容的,原算法对应新版本的level=3模式,压缩的接口多了一个可选的level参数:

int Encode(Inputter* inputter, Outputter* outputter, ActionHandler* action_handler = NULL, int level = );
int Decode(Inputter* inputter, Outputter* outputter, ActionHandler* action_handler = NULL);

  欢迎大家下载/试用/吐槽/提BUG。

高性能的数据压缩库libzling-20140324的更多相关文章

  1. 高性能的数据压缩库libzling

    libzling(https://github.com/richox/libzling)是一款高性能的数据压缩库,在压缩时间和压缩率上都超过了流行的zlib/gzip.libzling使用的是ROLZ ...

  2. 高性能的数据压缩库libzling-20160105

    libzling(https://github.com/richox/libzling,求观看[watch],求星[star],求叉[fork])是一款高性能的数据压缩库,参见原贴:http://ww ...

  3. 基于async/non-blocking高性能redis组件库BeetleX.Redis

    BeetleX.Redis是基于async/non-blocking模式实现的高性能redis组件库,组件支持redis基础指令集,并封装更简便的List,Hashset和Subscribe操作.除了 ...

  4. 深入 Go 中各个高性能 JSON 解析库

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/535 其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对 ...

  5. 高性能的JavaScript库---Lodash

    上周在仿做Nodejs社区的时候,遇到了lodash这个javascript库,很惭愧,那也是我第一次听说lodash.人嘛,对于新鲜的事物总是会或多或少感到些好奇的,于是就毫不犹豫地去lodash官 ...

  6. 高性能 Java 缓存库 — Caffeine

    http://www.baeldung.com/java-caching-caffeine 作者:baeldung 译者:oopsguy.com 1.介绍 在本文中,我们来看看 Caffeine - ...

  7. 发布一个参考tornado的高性能c++网络库:libtnet

    libtnet是一个用c++编写的高性能网络库,它在设计上面主要参考tornado,为服务端网络编程提供简洁而高效的接口,非常易于使用. Echo Server void onConnEvent(co ...

  8. 【ZeroMQ】2、高性能的通讯库-zeroMQ

    首先,让我来介绍一下什么是ZMQ(全称:ZeroMQ): 官方: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加 ...

  9. 超轻量级、高性能C日志库--EasyLogger

    [ 声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:armink.ztl@gmail.com] EasyLogger 1. 介绍 EasyLogger 是一款超轻量级(ROM<1.6K, ...

随机推荐

  1. php CI框架输出空行问题排查

    今天在使用 curl 命令行工具调试一个功能时,发现输出的内容总是会在最开始莫名其妙的多一行空行: 项目框架是 php 的 CodeIgniter,感觉这种问题在网上不好查找,因为可以确定这个是业务出 ...

  2. ctx.header

    ctx.headers 获取所有的 header 信息,等同于 ctx.header. session session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次sess ...

  3. DATASNAP远程方法返回TSTREAM正解

    DATASNAP远程方法返回TSTREAM正解 DATASNAP远程方法返回TSTREAM,如果数据大小超过32K是会报错的.许多DELPHIER栽在这个上头,甚至开始怀疑TSTREAM返回数据的可行 ...

  4. 咏南新CS插件开发框架支持DELPHI7

    咏南新CS插件开发框架支持DELPHI7 适用软件:基于数据管理的应用软件适用行业:生产制造.物流.贸易.零售行业的ERP.MRP.CRM.MIS.MES.POS等基于C/S架构的数据库管理系统 运行 ...

  5. 注册一个GitHub用户的过程

    今天,我注册了一个GitHub用户.一开始,不知道GitHub是什么,还以为叫什么"getup",心里还想着什么网站名字这么奇怪,后来在舍友的帮助之下知道了原来是叫GitHub.下 ...

  6. django系列4.1--模版系统,过滤器,标签,模版继承,组件

    django 模版系统 一. 语法 { { 变量 } } {% 表达式 %} 二. 变量 { {变量名} } 深度查询据点符( . )在模版语言中有特殊的含义. 当模版系统遇到点(.) 查询顺序如下: ...

  7. mysql--pymysql 模块

    pymysql模块 一.安装 cmd中使用pip或者, pycharm中控制台选择Terminal输入下面的命令,即可安装pymysql模块 pip3 install pymysql 二. 连接,执行 ...

  8. NOIP2013PUZZLE

    #include<cstdio> #include<cstring> #define MIN(A,B) (A)<(B)?(A):(B) using namespace s ...

  9. Java50道经典习题-程序16 在控制台上打印九九乘法表

    题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. public class Prog16 { public static void main(St ...

  10. CSS3-渐变这个属性2

    渐变 有了渐变再也不用去切1px的图再重复了.. -webkit- 是浏览器前缀, 表示特定浏览器对一个属性还在实验阶段, 在这里顺便写下各个浏览器的前缀: chrome/ safari     -w ...