LZ4 は可逆圧縮アルゴリズムで、コアあたり 500 MB/秒を超える圧縮速度を実現し、マルチコア CPU で拡張可能です。コアあたり数 GB/秒の速度を持つ非常に高速なデコーダを備えており、通常はマルチコア システムの RAM 速度制限に達します。
速度は動的に調整でき、圧縮率を犠牲にして高速化する「加速」係数を選択します。その一方で、CPU 時間を犠牲にして圧縮率を向上させる、高圧縮派生 LZ4_HC も提供されています。すべてのバージョンの解凍速度は同じです。
LZ4 は、API レベルと CLI レベルの両方で辞書圧縮とも互換性があります。任意の入力ファイルを辞書として取り込むことができますが、使用されるのは最後の 64KB のみです。この機能を Zstandard Dictionary Builder と組み合わせると、小さなファイルの圧縮パフォーマンスが大幅に向上します。
LZ4ライブラリはBSD 2条項ライセンスを使用したオープンソースソフトウェアとして提供されます。
支店 | 状態 |
---|---|
開発者 |
このベンチマークは、Linux 64 ビット (Ubuntu 4.18.0-17) 上の GCC v8.2.0 でコンパイルされた @inikep の lzbench を使用します。リファレンス システムは、Core i7-9700K CPU @ 4.9 GHz (ターボ ブーストあり) を使用します。ベンチマークは、シングルスレッド モードでの参照 Silesia Corpus の圧縮を評価します。
コンプレッサー | 比率 | 圧縮 | 減圧 |
---|---|---|---|
memcpy | 1.000 | 13700MB/秒 | 13700MB/秒 |
LZ4 デフォルト (v1.9.0) | 2.101 | 780MB/秒 | 4970MB/秒 |
LZO2.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 deflate 1.2.11 -1 | 2.730 | 100MB/秒 | 415MB/秒 |
LZ4 HC-9 (v1.9.0) | 2.721 | 41MB/秒 | 4900MB/秒 |
zlib deflate 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
コマンド ライン インターフェイスの両方を簡単にインストールできるパッケージ マネージャーがバンドルされています。