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

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

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

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • lvs环境搭建

    lvs环境搭建参考:https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665http://www.cnblogs.com/klb561/p/9215667.html补充了设置vip的方法以及一些解释性东西。 负载均衡集群是loadbalance集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、…

  • Apache Shiro框架简介[通俗易懂]

    Apache Shiro框架简介[通俗易懂]shiro是什么我们在做web应用时总会需要做登录等身份认证。一般情况下我们都是自己写加密(例如MD5加密)和帐号密码对比。一般做法通过表单提交用户名及密码达到认证目的。权限方面的管理则通过一般的判断。比如哪个账户可以看到哪些模块,可以进行哪些操作。而shiro就是一个封装以上需求操作的开源框架。它能帮助我们更好更方便的做好web应用的安全管理。而不需

  • 蓝桥杯单片机必备知识—–(11)EEPROM

    蓝桥杯单片机必备知识—–(11)EEPROM

  • java锁升级过程

    java锁升级过程java中对象锁有4种状态:(级别从低到高)1.无锁状态2.偏向锁状态3.轻量级锁状态4.重量级锁状态对象头分两部分信息,第一部分用于存储哈希码、GC分代年龄等,这部分数据被称为”MarkWord”。在32位的HotSpot虚拟机中对象未被锁定的状态下,MarkWord的32bit空间中的25bit用于存储对象哈希码,4bit用于存储对象分代年龄,2bit用于存储锁标志位,1bit固…

  • 虚拟串口模拟器和串口调试助手使用教程「建议收藏」

    虚拟串口模拟器和串口调试助手使用教程「建议收藏」虚拟串口(虚拟COM端口),应该很多人都知道,也就是一种模拟物理串行接口的软件。它完全复制了硬件COM接口的功能,并且将被操作系统和串行应用程序识别为真实端口。以前的电脑,基本标配都包含一个串口。但现在的电脑,基本都没有配置串口了。如果要使用串口的功能,基本就要用一个USB转串口的硬件模块。现实生活中,虚拟串口用处很多。比如:你的应用程序检测串行输入数据的时候,方便调试。还比如:多个有应用程序之间使用串口通信。虚拟串口软件推荐:强大的虚拟串口软件串口调试助手软件有很多,随便选一个自己

  • ubuntu安装rap

    ubuntu安装rap

发表回复

您的电子邮箱地址不会被公开。

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