DataBackup 中文文档 下载 App

zstd 压缩的优势:速度比 gzip 快 5 倍、压缩率也好 20%

zstd 是什么

Zstandard(简称 zstd)是 Facebook / Meta 开源的实时压缩算法,定位是「在高压缩比和高速之间找一个现代平衡点」。在压缩工具链里的地位类似 Rust 在编程语言里的地位——设计目标是替代传统老算法。

三维对比

压缩速度

算法压缩速度(MB/s)相对 zstd
zstd -3~5001× 基准
gzip -6~150慢 3~4 倍
xz -6~50慢 10 倍

zstd 的压缩速度是 gzip 的 3~5 倍、xz 的 10 倍以上。这意味着备份过程等待时间大幅缩短——特别是数据量上 GB 的聊天应用。

压缩率(同样数据的压缩后体积)

算法压缩后体积相对原始数据
zstd -3~35%1× 基准
gzip -6~42%比 zstd 大 20%
xz -6~28%比 zstd 小 20%

xz 的压缩率确实最好,但代价是慢到不能用。zstd 在压缩率上比 gzip 好约 20%,省空间同时不牺牲速度。

解压速度

算法解压速度
zstd极快,比 gzip 还快 30~50%
gzip中等
xz最慢

恢复时解压速度直接决定你等多久。zstd 的解压速度是 xz 的 3~6.5 倍,是 gzip 的 1.3~1.5 倍。

为什么这对备份很重要

备份场景有两个特点:

  1. 一次要处理很多文件——每个应用一个 tar 包,几十上百个应用依次压缩
  2. 速度和空间都要——太快但占空间的算法(比如不压缩)也不行,太省空间但慢到不能用的也不行

zstd 恰好卡在最甜的位置——备份时不浪费时间等压缩,恢复时解压快不浪费时间,压缩率也过得去。

DataBackup 的压缩策略

DataBackup 对每个应用的 APK 和数据目录分别打 tar,然后各用 zstd 压缩成 .tar.zst。这样做的好处: