Snappy(Google家用的快速压缩算法,以前的Zippy)

标签: Linux 源码分析 Snappy 压缩,算法 | 发表时间:2011-03-23 14:02 | 作者:Yu Feng Ivan
出处:http://blog.yufeng.info

原创文章,转载请注明: 转载自Erlang非业余研究

本文链接地址: Snappy(Google家用的快速压缩算法,以前的Zippy)

刚刚雕梁同学告诉我google刚刚开源了他自己家用的快速压缩算法,AKA Zippy, 看来下貌似不错。

项目主页: http://code.google.com/p/snappy/

Snappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression. For instance, compared to the fastest mode of zlib, Snappy is an order of magnitude faster for most inputs, but the resulting compressed files are anywhere from 20% to 100% bigger. On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more.

Snappy is widely used inside Google, in everything from BigTable and MapReduce to our internal RPC systems. (Snappy has previously been referred to as “Zippy” in some presentations and the likes.)

$ svn checkout http://snappy.googlecode.com/svn/trunk/ snappy && cd snappy
$ ./configure && make
$ ./snappy_unittest
Running microbenchmarks.
WARNING: Compiled with assertions enabled, will be slow.
Benchmark            Time(ns)    CPU(ns) Iterations
---------------------------------------------------
BM_UFlat/0             223919     223930        893 436.1MB/s  html
BM_UFlat/1            2161619    2162717         92 309.6MB/s  urls
BM_UFlat/2              54322      54137       3269 2.2GB/s  jpg
BM_UFlat/3             102384     102334       1915 879.1MB/s  pdf
BM_UFlat/4             904663     899863        220 434.1MB/s  html4
BM_UFlat/5              86095      86380       2315 271.6MB/s  cp
BM_UFlat/6              40602      40607       5023 261.9MB/s  c
BM_UFlat/7              13244      13198      15151 268.9MB/s  lsp
BM_UFlat/8            3956500    3939400         50 249.3MB/s  xls
BM_UFlat/9             762839     762337        261 190.3MB/s  txt1
BM_UFlat/10            653573     655639        305 182.1MB/s  txt2
BM_UFlat/11           1997280    1999700        100 203.5MB/s  txt3
BM_UFlat/12           2717739    2711917         73 169.5MB/s  txt4
BM_UFlat/13           1051349    1047460        189 467.3MB/s  bin
BM_UFlat/14            147776     147252       1358 247.7MB/s  sum
BM_UFlat/15             16914      16913      11173 238.3MB/s  man
BM_UFlat/16            239393     238573        834 399.7MB/s  pb
BM_UFlat/17            791722     793527        252 221.5MB/s  gaviota
BM_UValidate/0         108440     108560       1842 899.6MB/s  html
BM_UValidate/1        1187755    1190291        168 562.5MB/s  urls
BM_UValidate/2            657        658     289855 179.5GB/s  jpg
BM_UValidate/3          37172      37224       5372 2.4GB/s  pdf
BM_UValidate/4         438133     438530        456 890.8MB/s  html4
BM_ZFlat/0             918760     916912        217 106.5MB/s  html (23.57 %)
BM_ZFlat/1            9691700    9698550         20 69.0MB/s  urls (50.89 %)
BM_ZFlat/2             169311     168772       1173 717.4MB/s  jpg (99.88 %)
BM_ZFlat/3             417202     416255        478 216.1MB/s  pdf (82.13 %)
BM_ZFlat/4            3691074    3703129         54 105.5MB/s  html4 (23.55 %)
BM_ZFlat/5             356185     357089        560 65.7MB/s  cp (48.12 %)
BM_ZFlat/6             155500     155339       1268 68.5MB/s  c (42.40 %)
BM_ZFlat/7              52200      52129       3836 68.1MB/s  lsp (48.37 %)
BM_ZFlat/8           12006875   11998187         16 81.8MB/s  xls (41.34 %)
BM_ZFlat/9            2785472    2777361         72 52.2MB/s  txt1 (59.81 %)
BM_ZFlat/10           2381506    2385180         83 50.1MB/s  txt2 (64.07 %)
BM_ZFlat/11           7528884    7498846         26 54.3MB/s  txt3 (57.11 %)
BM_ZFlat/12           9649700    9598500         20 47.9MB/s  txt4 (68.35 %)
BM_ZFlat/13           3784346    3787884         52 129.2MB/s  bin (18.21 %)
BM_ZFlat/14            564691     566487        353 64.4MB/s  sum (51.88 %)
BM_ZFlat/15             67413      67366       2909 59.8MB/s  man (59.36 %)
BM_ZFlat/16            903805     904841        221 105.4MB/s  pb (23.49 %)
BM_ZFlat/17           2509924    2493291         79 70.5MB/s  gaviota (38.27 %)

Running correctness tests.
All tests passed.

粗粗跑了下,压缩速度确实很吓人,到时候好好测试下。有兴趣的同学可以对比下这里

玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

相关 [snappy google 压缩] 推荐:

Snappy(Google家用的快速压缩算法,以前的Zippy)

- Ivan - Erlang非业余研究
原创文章,转载请注明: 转载自Erlang非业余研究. 本文链接地址: Snappy(Google家用的快速压缩算法,以前的Zippy). 刚刚雕梁同学告诉我google刚刚开源了他自己家用的快速压缩算法,AKA Zippy, 看来下貌似不错. 项目主页: http://code.google.com/p/snappy/.

GZIP、LZO、Zippy/Snappy压缩算法应用场景小结 - 大圆那些事 - 博客园

- -
大圆那些事| 文章可以转载,请以超链接形式标明文章原始出处和作者信息. GZIP、LZO、Zippy/Snappy是常用的几种压缩算法,各自有其特点,因此适用的应用场景也不尽相同. 这里结合相关工程实践的情况,做一次小结. 以下是Google几年前发布的一组测试数据(数据有些老了,有人近期做过测试的话希望能共享出来):.

HBase snappy部署 转

- - 企业架构 - ITeye博客
转 http://blog.csdn.net/chenyi8888/article/details/14167311. 转:http://shitouer.cn/2013/01/hadoop-hbase-snappy-setup-final-tutorial/. 因为业务需要所以对hbase的数据做整体的压缩处理.

GitHub - cnlh/nps: 一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。

- -
nps是一款轻量级、高性能、功能强大的. tcp、udp流量转发,可支持任何. tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还. 支持内网http代理、内网socks5代理、. p2p等,并带有功能强大的web管理端. 做微信公众号开发、小程序开发等----> 域名代理模式.

Google Docs 可以为你解开 ZIP 或 RAR 压缩包了

- llpazxj - 谷奥——探寻谷歌的奥秘
有时候由于文件太大或太碎太多,别人会打一个压缩包发到你的邮箱. 此时你不得不下载下来,解压缩,一个一个的观看,如果你的电脑不支持ZIP或RAR还得找个解压缩软件(这年头这样的电脑估计不多了). 如果你习惯于使用Google Docs协作编辑,那你也必须下载下来解压缩再一个一个传到Google Docs里.

Google宣布新开源压缩算法Brotli

- - cnBeta全文版
宣布了 新的开源压缩算法. Brotli ,代码托管在GitHub上,采用 Apache许可证. Zopfli是 Deflate兼容,而Brotli则使用了全新的数据格式,Google称这让Brotli压缩率比Zopfli高20–26%. 它发表了一份 研究报告(PDF),对比了Brotli、Deflate、Zopfli、LZMA、 LZHAM和 Bzip2压缩算法, 结果显示Brotli与 zlib的 Deflate实现一样快,对Canterbury资料库的压缩密度好于 LZMA和bzip2.

google group varint 无损压缩解压算法的高效实现 改进版

- - 搜索技术博客-淘宝
google group varint 无损压缩解压算法的高效实现. 近期对其进行了一次改进,性能提升 20%,测试数据如下:. 压缩和解压 100万个整数 (4M). 新版本: encode time consumed: 0.003252 s ;. 老版本: encode time consumed: 0.005198 s ;.

Java使用google的thumbnailator工具对图片压缩水印等做处理

- - 孟飞阳的博客
今天给大家分享一个非常好用的工具thumbnailator. Thumbnailator是一个非常好的图片开源工具. net.coobird thumbnailator 0.4.8 .

Google在Google+中使用 RAISR 技术压缩图像减少最多75%的带宽

- - Solidot
高清图像需要更高的带宽,会导致加载缓慢和更高的数据成本. Google运用机器学习技术开发了名叫RAISR(代表apid and Accurate Image Super Resolution)的图像压缩技术,能减少75%的带宽,但同时访问者察觉不出图像质量下降. 相关论文(PDF)发表在预印本网站arxiv.org上.

String压缩 解压缩

- - CSDN博客推荐文章
数据传输时,有时需要将数据压缩和解压缩,本例使用GZIPOutputStream/GZIPInputStream实现. 1、使用ISO-8859-1作为中介编码,可以保证准确还原数据. 2、字符编码确定时,可以在decompress方法最后一句中显式指定编码. * @return 压缩后的字符串. GZIPOutputStream os = null; // 使用默认缓冲区大小创建新的输出流.