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