Skip to content

LZ4

LZ4 是一个以速度为核心目标的无损压缩算法,常用于实时系统、内存缓存和高吞吐数据流。

核心思想

LZ4 使用轻量级字典匹配,格式和实现都偏向快速压缩与快速解压。

可以怎样理解它的设计哲学

LZ4 的重点不是“把每一个字节都压到极致”,而是:

text
尽快找到可接受的重复
  -> 尽快编码
  -> 尽快恢复

因此它常常在系统热路径、缓存、流式传输、临时中间结果里非常有价值。

工程取舍

维度特点
压缩速度很快
解压速度很快
压缩率通常低于 ZSTD/LZMA/Brotli
内存
流式支持

常见工程特征

  • 实现简单,部署和调试成本较低。
  • 解压通常也非常快,这对读路径很重要。
  • 更像“用 CPU 换最小延迟”,而不是“用 CPU 换更高压缩率”。

适用场景

  • 实时传输
  • 内存缓存
  • 日志热路径
  • 对延迟敏感的数据处理

调参时通常先看什么

  1. 是否直接用默认快速模式。
  2. 是否需要 frame 格式而不是裸 block 接口。
  3. 数据本身是否值得压缩;对高度随机数据它往往意义不大。

使用时的常见坑

  • 把它和高压缩率算法直接比“最终文件大小”,容易误判它的定位。
  • 忽略整体延迟收益,只盯着压缩率,会错过它最核心的价值。

C++ 示例

查看 LZ4 C++ 示例