snappy

Snappy 是一個 C++ 的用來壓縮和解壓縮的開發包。其目標不是最大限度壓縮或者兼容其他壓縮格式,而是旨在提供高速壓縮速度和合理的壓縮率。Snappy 比 zlib 更快,但檔案相對要大 20% 到 100%。在 64位模式的 Core i7 處理器上,可達每秒 250~500兆的壓縮速度。

簡介

Snappy 在 Google 內部被廣泛的使用,從 BigTable 到 MapReduce 以及內部的 RPC 系統。  

snappy 是一個壓縮庫。它可以利用單顆Intel Corei7處理器核心處理至少每秒250MB~500MB的數據流。

snappy 的前身是Zippy。雖然只是一個數據壓縮庫,它卻被Google用於許多內部項目程,其中就包括BigTable,MapReduce和RPC。Google宣稱它在這個庫本身及其算法做了數據處理速度上的最佳化,作為代價,並沒有考慮輸出大小以及和其他類似工具的兼容性問題。Snappy特地為64位x86處理器做了最佳化,在單個Intel Core i7處理器核心上能夠達到至少每秒250MB的壓縮速率和每秒500MB的解壓速率。

如果允許損失一些壓縮率的話,那么可以達到更高的壓縮速度,雖然生成的壓縮檔案可能會比其他庫的要大上20%至100%,但是,相比其他的壓縮庫,Snappy卻能夠在特定的壓縮率下擁有驚人的壓縮速度,“壓縮普通文本檔案的速度是其他庫的1.5-1.7倍,HTML能達到2-4倍,但是對於JPEG、PNG以及其他的已壓縮的數據,壓縮速度不會有明顯改善”。

特點

Google極力讚揚Snappy的各種優點,Snappy從一開始就被“設計為即便遇到損壞或者惡意的輸入檔案都不會崩潰”,而且被Google在生產環境中用於壓縮PB級的數據。其健壯性和穩定程度可見一斑。

Snappy也可以用於和其他壓縮庫-zlib、LZO、LZF、FastLZ和QuickLZ-做對比測試,前提是你在機器上安裝了這些壓縮庫。Snappy是一個C++的庫,你可以在產品中使用,不過也有一些其他語言的版本,例如Haskell、Java、Perl、Python和Ruby。

Snappy採用新BSD協定開源。

相關詞條

相關搜尋

熱門詞條

聯絡我們