zoukankan      html  css  js  c++  java
  • 高性能的数据压缩库libzling-20140324

      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 = 0); 
    int Decode(Inputter* inputter, Outputter* outputter, ActionHandler* action_handler = NULL);

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

  • 相关阅读:
    Python 队列
    Python 栈
    Python面试百题
    TCP:四次挥手
    TCP:三次握手
    SQL:八 SQL高级处理
    SQL:七 集合运算
    SQL:六 函数、谓词、CASE表达式
    SQL:五 复杂查询
    python爬虫——爬取网页数据和解析数据
  • 原文地址:https://www.cnblogs.com/richselian/p/3626287.html
Copyright © 2011-2022 走看看