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
命令行界面。