您当前的位置:首页 > 计算机 > 软件应用 > 其它软件

推荐一款开源的高性能压缩工具 Zstd

时间:04-19来源:作者:点击数:

Zstd 是什么?

Zstd 是“Zstandard”的简称,是一种快速的无损压缩算法,以zlib级和更好的压缩率为目标的实时压缩方案。 它有一个非常快的熵阶段,由 Huff0 和 FSE 库提供。

项目目前 Star 14K ,可以看出项目相对比较活跃;

性能对比测试

LZ压缩算法性能对比

小数据压缩性能对比

字典压缩方法示例

  1. 创建字典

    zstd --train FullPathToTrainingSet/* -o dictionaryName

  2. 用字典压缩

    zstd -D dictionaryName FILE

  3. 用字典解压缩

    zstd -D dictionaryName --decompress FILE.zst

安装

#Ubuntu

sudo apt install zstd

#CentOS

sudo yum install zstd

#编译安装

sudo git clone https://github.com/facebook/zstd.git

sudo cd zstd && sudo make && sudo make install

命令参数

语法格式

zstd [args] [FILE(s)] [-o file]

选项/参数

-#: 压缩级别(1-19,默认值为3);

-d: 解压;

-D file: 使用文件作为字典;

-o file: 结果存储在文件中;

-f: 在没有提示的情况下覆盖输出并(解压)压缩链接;

--rm : 成功解压缩后删除源文件;

-k: 保存源文件(默认);

-h/-H: 显示帮助/长帮助并退出;

高级选项 :

-V: 显示版本号;

-v: 详细模式;

-q: 静默输出;

-c: 强制写入标准输出;

-l: 输出zstd压缩包中的信息;

--ultra: 启用超过19级,最多22级(需要更多内存);

-T#: 使用几个线程进行压缩(默认值:1个);

-r: 递归地操作目录;

--format=gzip: 将文件压缩为.gz格式;

-M#: 为解压设置内存使用限制;

字典生成器:

--train ##: 从一组训练文件中创建一个字典;

--train-cover[=k=#,d=#,steps=#]: 使用带有可选参数的cover算法;

--train-legacy[=s=#]: 有选择性地使用遗留算法(默认值:9);

-o file: “file”是字典名(默认:字典);

--maxdict=#: 将字典限制为指定大小(默认值:112640);

--dictID=#: 强制字典ID为指定值(默认:随机);

性能测试参数 :

-b#: 基准测试文件,使用#压缩级别(默认为1);

-e#: 测试从-bX到#的所有压缩级别(默认值:1);

-i#: 最小计算时间(秒)(默认为3s);

-B#: 将文件切成大小为#个独立块(默认:无块);

--priority=rt : 将进程优先级设置为实时;

应用示例

#压缩一个文件

sudo zstd File

#压缩完成删除源文件

sudo zstd --rm File

#解压缩包

sudo zstd -d File.zst

#解压压缩包到标准输出

sudo zstd -dc File.zst

#查看压缩包

sudo zstdcat File.zst

sudo zstd -l File.zst

#解压缩时输出详细信息

sudo zstd -v File

sudo zstd -v -d File.zst

#压缩时指定压缩级别(低0-19高,默认3级别)

sudo zstd -level File

sudo zstd -12 File

#使用更多的内存(解压缩)拥有更高的压缩比

sudo zstd --ultra -level File

#多进程并发执行解压缩,默认单进程

sudo zstd -T0 File

sudo zstd -T2 File

sudo zstd -T2 -d File.zst

注意:0表示自动分配CPU核心

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门