一、简介

  Snappy(旧称:Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源。其目标并非最大压缩率或与其他压缩程序的兼容性,而是非常高的速度和合理的压缩率。使用一个运行在64位模式下的酷睿i7处理器的单个核心,压缩速度250 MB/s,解压速度500 MB/s。压缩率比gzip低20-100%

  Snappy广泛应用在Google的项目,例如BigTable、MapReduce和Google内部RPC系统的压缩数据。它可在开源项目中使用,例如Cassandra、Hadoop、LevelDB、MongoDB、RocksDB和Lucene。[4]解压缩时会检测压缩流中是否存在错误。Snappy不使用内联汇编并且可移植。

  来源:维基百科

  二、安装

  1、下载:https://github.com/google/snappy.git

  2、安装CMake

  3、cd snappy && mkdir build && cd build && cmake ../ && make && make install

  三、测试

#include <iostream>
#include <string>
#include <snappy.h>
using namespace std; int main(int argc,char* argv[])
{
string input = "hello world";
string output; for(int i = ; i < ; i++)
input += input; snappy::Compress(input.data(),input.size(),&output);
cout << "input size: " << input.size() << " output size: " << output.size() << endl; string output_uncom;
snappy::Uncompress(output.data(),output.size(),&output_uncom);
if(input == output_uncom)
cout << "same" << endl;
else
cout << "not same" << endl; return ;
}

  编译:g++ test.cpp -o test -lsnappy

最新文章

  1. nth-of-type
  2. 理解Ruby中的作用域
  3. android 第三方 图表
  4. 驱动笔记 - ioctl
  5. CodeFirst中DB保存时报错:对一个或多个实体的验证失败。
  6. svn搭建文档
  7. 【BZOJ 3626】 [LNOI2014]LCA【在线+主席树+树剖】
  8. python-----HTMLTestRunner报告生成注意点!
  9. Windows 10 ADK 版本及下载链接汇总
  10. tensorflow添加层-【老鱼学tensorflow】
  11. 【js】了解前端缓存,收获不止于此!
  12. c++ 调用 wmi 获取数据
  13. 《温故而知新》JAVA基础二
  14. 1、Keepalived及VRRP原理介绍
  15. BFS+二进制状态压缩 hdu-1429
  16. Codeforces #55D-Beautiful numbers (数位dp)
  17. TCP系列52—拥塞控制—15、前向重传与RACK重传拥塞控制处理对比
  18. [LintCode] 通配符查询
  19. Redhat系的Linux系统里,网络主要设置文件简介【转载】
  20. Windows 环境下 Redis 安装

热门文章

  1. 如何把word文档导入到数据库中——java POI
  2. 浙江省赛 ZOJ - 4033
  3. 19)PHP,数组知识
  4. c语言中对字段宽度的理解?
  5. lnmp环境搭建:Centos7 + Nginx1.12.2 + Mysql-5.6.38 + PHP7.2.0
  6. 编译原理_P1001
  7. CHINA SHOP 2019 | 奇点云“云+端”产品及解决方案赋能线下零售
  8. 回归分析|r^2|Se|变差|多重相关系数|决定系数|多重共线性|容忍度|VIF|forward selection|backward elimination|stepwise regression procedure|best-subset approach|回归方程的置信区间|预测区间|残差分析|虚拟变量
  9. 关于Apache Commons-Lang3的使用
  10. ready vs onload