一门心思做超快解压的无损压缩:ZXC
来源:libzxc.org — 2026-10-13
📋 概述
ZXC 是一个用 C 写的无损压缩库,面向的场景是「压缩一次、读取很多次」的数据:固件镜像、游戏资源、应用包,以及面向大量设备分发的内容。它让编码端多花时间,换来解码时在 ARM 与 x86 上跑到数 GB/s;官方称在每一档压缩级别下解码都快过 LZ4,而输出体积等于或更小。当前版本 0.15.0,7 个压缩级别(默认 3),块大小 4KB 到 2MB,解码上下文约 512KB,支持带 seek 表的 O(1) 随机访问、约 1% 余量的原地解压、可训练字典、多线程流式与手写 SIMD,并给出完整的格式规范与一致性测试向量。作者也坦诚说明高档位压缩速度只有约 10 MB/s。
🔑 核心要点
- 定位是压缩一次、读取很多次的数据:固件、游戏资源、应用包与批量分发内容
- 把成本移到编码端:每一档的解码都快过 LZ4,输出体积等于或更小
- 默认档 zxc -3 在 Apple M2 上解码 9,707 MB/s,输出为原数据的 46.65%,对应 LZ4 是 4,774 MB/s 与 47.60%
- 极速档 zxc -1 解码 13,513 MB/s,比 lz4 --fast -17 快 2.41 倍且输出更小
- 特色能力:seek 表实现 O(1) 随机访问、约 1% 余量的原地解压、可训练字典
- 代价说得很直白:6、7 档压缩速度约 10 MB/s,比 lz4hc -9 还慢,只适合一次写多次读的数据
💡 金句
LZ4 是对称的:压缩速度和解压速度差不多,这适合日志与交换分区,却不适合被分发出去的数据。
👍 0
👎 0
← 返回 Lobsters 首页