zstd - 一種由Facebook使用的快速數據壓縮算法


Zstandard (也被稱為zstd )是一款免費的開源,快速實時數據壓縮程序,具有更好的壓縮比,由Facebook開發。 它是用C語言編寫的無損壓縮算法 (在Java中有一個重新實現) - 因此它是一個本地Linux程序。

另請參閱 : Linux中的10 7zip(Data Comperssion)命令示例

當需要時,它可以將壓縮速度交換為更高的壓縮比率(壓縮速度與壓縮比率的權衡可以通過小增量來配置),反之亦然。 它具有小數據壓縮的特殊模式,稱為字典壓縮,可以從任何提供的樣本集中構建字典。 它帶有一個命令行實用程序,用於創建和解碼.zst , .gz , .xz.lz4文件。

重要的是, Zstandard擁有豐富的API集合,支持幾乎所有流行的編程語言,包括Python,Java,JavaScript,Nodejs,Perl,Ruby,C#,Go,Rust,PHP,Switft等等。

它被積極用於壓縮Facebook中多種格式和用例的大量數據; 服務,如Amazon Redshift數據倉庫; 數據庫,如Hadoop和Redis; Tor網絡和許多其他應用程序,包括游戲。

通過使用lzbench (一種開源內存基准測試工具)在運行Linux Debian的服務器上執行多個快速壓縮算法測試,可以獲得以下結果。

Z標准壓縮測試

Z標准壓縮測試

如何在Linux中安裝Zstandard壓縮工具

要在Linux發行上安裝Zstandard ,您需要從源代碼進行編譯,但在此之前,您需要使用發行包管理器在系統上安裝必要的開發工具,如圖所示。

$ sudo apt update && sudo apt install build-essential #Ubuntu/Debian # yum group install "Development Tools" #CentOS/REHL # dnf groupinstall "C Development Tools and Libraries" #Fedora 22+

一旦安裝了所有需要的開發工具,現在您可以下載源軟件包,進入本地repo目錄,構建二進制文件並按照所示進行安裝。

$ cd ~/Downloads $ git clone https://github.com/facebook/zstd.git $ cd zstd $ make $ sudo make install 

一旦安裝了Zstandard ,現在我們可以進一步學習以下部分中有關Zstd命令示例的一些基本用法。

在Linux中學習10個Zstd命令使用示例

Zstd的命令行語法通常與gzipxz工具類似,但有一些差異。

1.要創建.zst壓縮文件,只需提供一個壓縮文件名即可,或者使用-z標志也意味着壓縮,這是默認操作。

$ zstd etcher-1.3.1-x86_64.AppImage OR $ zstd -z etcher-1.3.1-x86_64.AppImage

2.要解壓縮.zst壓縮文件,請使用-d標志或unzstd實用程序,如圖所示。

$ zstd -d etcher-1.3.1-x86_64.AppImage OR $ unzstd etcher-1.3.1-x86_64.AppImage

3.要在操作后刪除源文件,默認情況下,源文件在成功壓縮或解壓縮后不會被刪除,要刪除它,請使用--rm選項。

$ ls etcher-1.3.1-x86_64.AppImage $ zstd --rm etcher-1.3.1-x86_64.AppImage $ ls etcher-1.3.1-x86_64.AppImage

4.要設置壓縮級別,zstd具有許多操作修飾符,例如,您可以指定壓縮級別為-6 (數字1-19,默認值為3),如圖所示。

$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage

5.要設置壓縮速度,zstd的壓縮速度比率為1-10 ,默認壓縮速度為1 。 您可以使用--fast選項--fast壓縮速度的壓縮比,數字越高壓縮速度越快。

$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage

6.要顯示有關壓縮文件的信息,請使用-l標志,例如用於顯示有關壓縮文件的信息。

$ zstd -l etcher-1.3.1-x86_64.AppImage.zst

7.要測試壓縮文件的完整性,請使用-t標志,如圖所示。

$ zstd -t etcher-1.3.1-x86_64.AppImage.zst

8.要啟用詳細模式,請使用-v選項。

$ zstd -v -5 etcher-1.3.1-x86_64.AppImage

9.使用其他文件壓縮或解壓縮格式,例如gzip,xz,lzma和lz4,使用--format=FORMAT ,如圖所示。

$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage $ zstd -v --format=xz etcher-1.3.1-x86_64.AppImage

10.要將zstd進程優先級設置為實時,可以使用選項-priority = rt ,如圖所示。

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

-r標志指示zstd在字典上遞歸操作。 您可以找到許多有用的高級選項,以及如何通過查閱zstd手冊頁來閱讀或創建詞典。

$ man zstd

Zstandard Github存儲庫 : https : //github.com/facebook/zstd

Zstandard是一種快速的實時無損數據壓縮算法和壓縮工具,可提供高壓縮比。 嘗試一下,分享您的想法或通過下面的反饋表格提問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM