几个常用快速无损压缩算法性能比较

几个常用快速无损压缩算法性能比较

大家好,又见面了,我是全栈君。

几个常用快速无损压缩算法性能比较

Snappy
Snappy是在谷歌内部生产环境中被许多项目使用的压缩库,包括BigTable,MapReduce和RPC等。谷歌表示算法库针对性能做了调整,而不是针对压缩比或与其他类似工具的兼容性。在Intel酷睿i7处理器上,其单核处理数据流的能力达到250M/s-500M/s。Snappy同时针对64位x86处理器进行了优化,在英特尔酷睿i7处理器单一核心实现了至少250MB/s的压缩性能和500MB/ s的解压缩性能。Snappy对于纯文本的压缩率为1.5-1.7,对于HTML是2-4,当然了对于JPEG、PNG和其他已经压缩过的数据压缩率为1.0。谷歌强劲吹捧Snappy的鲁棒性,称其是“即使面对损坏或恶意输入也不会崩溃的设计”,并且在谷歌的生产环境中经过了PB级数据压缩的考验而稳定的。
官方网站:http://code.google.com/p/snappy/

 

FastLZ
FastLZ是一个高效的轻量级压缩解压库,其官方测试数据如下表:
 

几个常用快速无损压缩算法性能比较

1GB文本数据测试:
 

几个常用快速无损压缩算法性能比较

 

官方网站:http://www.quicklz.com/

 

LZO/miniLZO
LZO是一个开源的无损压缩C语言库,其优点是压缩和解压缩比较迅速占用内存小等特点(网络传输希望的是压缩和解压缩速度比较快,压缩率不用很高),其提供了比较全的LZO库和一个精简版的miniLZO库,网上测试数据如下:
测试的时候使用bmp和文本文件,在X86的Linux虚拟机(单核256M内存,Debian 6.0 OS)上测试。

测试文件

原始大小

压缩后大小

压缩率

压缩时间

解压时间

1.bmp     

5292054 

159395

3.01%

9.174ms

23.037ms

2.bmp     

6912056 

33806     

0.489%

8.33ms

36.17ms

3.bmp     

6220856 

5101891 

82%

25.78ms

28.43ms

lzo.tar

6645760 

2457890 

36.98%

34.68ms

38.62ms

kdoc.tar

16660480

6987402

41.93%

102.86ms

108.2ms

kinc.tar

18257920

5684927 

31.13%   

106.87ms

113.86ms


来自《HBase: The Definitive Guide》中的一个对比: 

Algorithm

% remaining

Encoding

Decoding

GZIP

13.4%

21 MB/s

118 MB/s

LZO

20.5%

135 MB/s

410 MB/s

Zippy/Snappy

22.2%

172 MB/s

409 MB/s

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108680.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言里void什么作用,C语言中void是什么意思?

    c语言里void什么作用,C语言中void是什么意思?C语言中void是什么意思?C语言中“void”表示为无类型,相应的“void*”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。C语言关键字auto:声明自动变量break:跳出当前循环case:开关语句分支char:声明字符型变量或函数返回值类型const:声明只读变量continue:结束当前循环,开始下一轮循环…

    2022年5月12日
    56
  • CDuiString和String的转换

    很多时候难免用到CDuiString和string的转换。我们应该注意到,CDuiString类有个方法:可以通过这个方法,把CDuiString变为LPCTSTR; 所以下一步只是

    2021年12月18日
    35
  • 基本数据类型与表达式6 – 零基础入门学习Delphi07

    基本数据类型与表达式6 – 零基础入门学习Delphi07

    2021年8月13日
    60
  • StrictMode 详解「建议收藏」

    StrictMode 详解「建议收藏」StrictMode类是Android2.3(API9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题。比如,如果你在UI线程中进行了网络或者磁盘操作,StrictMode就会通过Log(logcat)或者对话框的方式把信息提示给你,因为让你的UI线程处理这里操作会被认为是不规范的做法,可能会让你的应用变得比较卡顿。官网文档:http://developer.an

    2022年5月1日
    37
  • 局域网组建与维护期末考试题_局域网聊天程序java报告

    局域网组建与维护期末考试题_局域网聊天程序java报告局域网的组建与维护》学科期中测试题2014年秋季学期13级《局域网的组建与维护》期中测试题班别_____________姓名_____________成绩________________一、填空题(每空2分,共20分)1、计算机网络按地理位置分,可分为广域网、城域网、_局域网___。2、网线制作中,若采用T568B标准,则8针配线线序依次是白橙、橙、白绿_____蓝、白蓝、绿、白棕、棕3、两头都采…

    2025年7月1日
    3
  • 外链检测工具,反链友链检测工具

    外链检测工具,反链友链检测工具SEO外链的建设中,我们不仅需要为自身网站发布反链和建设友链。但盲目建设是不可取的。外链检测工具只需输入我们的目标网站,就可以对网站自身的内链、外链进行抓取,一键导出本地,方便我们进行分析整理,通过对竞争对手或行业头部网站的链接分析,我们可以分门别类对链接进行细分。通过对外链的分析,使得我们发布外链更有针对性和安全性。外链检测工具一键批量权重站发布外链留痕也是我们的一个SEO技巧。…

    2022年7月22日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号