添磚加瓦:snappy無損壓縮演算法

來源:互聯網
上載者:User

標籤: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無損壓縮演算法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.