码迷,mamicode.com
首页 > 移动开发 > 详细

添砖加瓦:snappy无损压缩算法

时间:2017-11-26 21:53:28      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:a10   解压   内联汇编   include   存在   hid   错误   开源项目   并且   

  一、简介

  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 = 0; i < 5; 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 0;
}
View Code

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

 技术分享图片

 

添砖加瓦:snappy无损压缩算法

标签:a10   解压   内联汇编   include   存在   hid   错误   开源项目   并且   

原文地址:http://www.cnblogs.com/lianshuiwuyi/p/7900388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!