LZ4 是無損壓縮演算法,提供每核心 > 500 MB/s 的壓縮速度,可透過多核心 CPU 進行擴充。它具有極快的解碼器,每個核心的速度為數 GB/秒,通常達到多核心系統上的 RAM 速度限制。
速度可以動態調整,選擇一個「加速」因子,以壓縮比換取更快的速度。另一方面,也提供了高壓縮衍生性商品 LZ4_HC,以 CPU 時間換取更高的壓縮比。所有版本都具有相同的解壓縮速度。
LZ4 也相容於 API 和 CLI 等級的字典壓縮。它可以將任何輸入檔作為字典攝取,但只使用最後的 64KB。此功能可與 Zstandard Dictionary Builder 結合使用,以大幅提高小檔案的壓縮效能。
LZ4 函式庫作為使用 BSD 2-Clause 授權的開源軟體提供。
分支 | 地位 |
---|---|
開發者 |
此基準測試使用 lzbench,來自@inikep,在 Linux 64 位元(Ubuntu 4.18.0-17)上使用 GCC v8.2.0 編譯。參考系統使用 Core i7-9700K CPU @ 4.9GHz(搭配睿頻加速)。 Benchmark 評估了參考西里西亞語料庫在單線程模式下的壓縮情況。
壓縮機 | 比率 | 壓縮 | 減壓 |
---|---|---|---|
記憶體複製 | 1.000 | 13700MB/秒 | 13700MB/秒 |
LZ4預設(v1.9.0) | 2.101 | 780MB/秒 | 4970MB/秒 |
蘭澤2.09 | 2.108 | 670MB/秒 | 860MB/秒 |
快客LZ 1.5.0 | 2.238 | 575MB/秒 | 780MB/秒 |
快活1.1.4 | 2.091 | 565MB/秒 | 1950MB/秒 |
Z標準1.4.0 -1 | 2.883 | 515MB/秒 | 1380MB/秒 |
LZF v3.6 | 2.073 | 415MB/秒 | 910MB/秒 |
zlib 放氣 1.2.11 -1 | 2.730 | 100MB/秒 | 415MB/秒 |
LZ4 HC -9 (v1.9.0) | 2.721 | 41MB/秒 | 4900MB/秒 |
zlib 放氣 1.2.11 -6 | 3.099 | 36MB/秒 | 445MB/秒 |
LZ4 還相容於 x32 模式 ( -mx32
) 並對其進行了優化,為此它提供了額外的速度性能。
make
make install # this command may require root permissions
LZ4 的Makefile
支援標準 Makefile 約定,包括分階段安裝、重定向或指令重新定義。它與並行構建( -j#
)相容。
您可以使用 vcpkg 依賴項管理器下載並安裝 LZ4:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg.exe install lz4
vcpkg 中的 LZ4 連接埠由 Microsoft 團隊成員和社群貢獻者保持最新。如果版本已過時,請在 vcpkg 儲存庫上建立問題或拉取要求。
原始 LZ4 區塊壓縮格式在 lz4_Block_format 中有詳細說明。
使用多個區塊來壓縮任意長的檔案或資料流,以滿足串流傳輸的要求。這些區塊被組織成一個幀,定義為lz4_Frame_format。 LZ4 的互通版本也必須遵守幀格式。
除了 C 參考來源之外,許多貢獻者還創建了多種語言(Java、C#、Python、Perl、Ruby 等)的 lz4 版本。 LZ4 主頁上維護已知來源連接埠的清單。
大多數發行版都捆綁了一個套件管理器,可以輕鬆安裝liblz4
庫和lz4
命令列介面。