The past is Death’s, the future is thine own;
——《伊斯兰的反叛》英/珀西·比希·雪莱
Zstandard,或简称为 zstd ,是一种快速无损压缩算法,针对 zlib 级别的实时压缩场景和更好的压缩率。它由Huff0 和 FSE 库提供的非常快的熵阶段支持。
一、算法对比
Compressor name | Ratio | Compression | Decompress. |
---|---|---|---|
zstd 1.4.5 -1 | 2.884 | 500 MB/s | 1660 MB/s |
zlib 1.2.11 -1 | 2.743 | 90 MB/s | 400 MB/s |
brotli 1.0.7 -0 | 2.703 | 400 MB/s | 450 MB/s |
zstd 1.4.5 –fast=1 | 2.434 | 570 MB/s | 2200 MB/s |
zstd 1.4.5 –fast=3 | 2.312 | 640 MB/s | 2300 MB/s |
quicklz 1.5.0 -1 | 2.238 | 560 MB/s | 710 MB/s |
zstd 1.4.5 –fast=5 | 2.178 | 700 MB/s | 2420 MB/s |
lzo1x 2.10 -1 | 2.106 | 690 MB/s | 820 MB/s |
lz4 1.9.2 | 2.101 | 740 MB/s | 4530 MB/s |
zstd 1.4.5 –fast=7 | 2.096 | 750 MB/s | 2480 MB/s |
lzf 3.6 -1 | 2.077 | 410 MB/s | 860 MB/s |
snappy 1.1.8 | 2.073 | 560 MB/s | 1790 MB/s |
二、zstd 文件压缩和解压命令
Ubuntu 安装 zstd
1 | sudo apt install -y zstd && zstd --version |
单个文件
单个文件 | |
---|---|
压缩 | zstd a.sql |
解压 | zstd -d a.sql.zst |
tar解压 | tar -I zstd -xvf a.zst |
tar解压(tar-1.31及以上版本) | tar xvf s.tar.zst |
压缩文件夹(和tar整合)
压缩文件夹(和tar整合) | |
---|---|
方法一 | tar cvf nginx.tar /etc/nginx;zstd nginx.tar |
方法二 | tar -I zstd -cvf nginx.tar.zst /etc/nginx |
方法三(tar-1.31及以上版本) | tar cvfa nginx.tar.zst /etc/nginx |
方法四(tar-1.31及以上版本,不建议,太慢) | tar cvfz nginx.tar.zst /etc/nginx |
三、pzstd 并行压缩
上述命令中替换 zstd 为 pzstd,实测效率略微上升
Reference
- facebook/zstd
- zstd文件压缩和解压命令
- 介绍一个高效的压缩工具