ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何让 7-Zip 用上 Zstandard?7-Zip-Zstandard 安装配置与算法选型全解

如何让 7-Zip 用上 Zstandard?7-Zip-Zstandard 安装配置与算法选型全解 如何让 7-Zip 用上 Zstandard7-Zip-Zstandard 安装配置与算法选型全解【免费下载链接】7-Zip-zstd7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd打包发布这件事你一定经历过这样的时刻几百 MB 的产物目录7z 的 LZMA2 单线程压了二十分钟CI 流水线卡在这一步硬盘风扇转得像是要起飞换成 LZ4 倒是快了可压缩率掉得让人心疼。速度与压缩比之间的这道二选一传统 7-Zip 一直逼你站队。7-Zip-Zstandard简称 7-Zip ZS把这道题改成了多选题它在经典 7-Zip 的外壳里内置 Zstandard、Brotli、LZ4、LZ5、Lizard 与 Fast-LZMA2 六种现代压缩算法让你按场景挑引擎而不是被引擎绑架。先用三个问题定位它解决什么、强在哪、边界在哪它解决了什么主流的 7-Zip 只带 LZMA/LZMA2 这类老牌算法而 Facebook 的 Zstandard、Google 的 Brotli 这些又快又小的新算法官方 7-Zip 至今没有合并进去——社区提过合并请求被官方婉拒。7-Zip ZS 正是补上这个缺口同样的 7z 容器、同样的右键菜单和命令行语法只是多了一批现代算法可以调用。它与同类方案的关键差异在哪它不重新发明轮子。Zstandard v1.5.7、Brotli v1.2.0、LZ4 v1.10.0 等算法的 C 源码直接内嵌在仓库的C/zstd/、C/brotli/目录下由作者 Tino Reichardt 统一维护整合多线程支持来自独立的 zstdmt 库。换句话说你拿到的是官方 7-Zip 26.02 的稳定内核加上-m0zstd、-m0lz4这类与原有语法完全一致的换引擎开关。它的边界在哪以插件形式接入时只能创建.7z容器不能直接生成.zst、.lz4这类独立文件完整版安装则没有此限制压缩 exe/dll 时需要显式改用-m0bcj而不是默认的 bcj2 过滤器。另外 RAR 压缩依旧不可用——那是 unRAR 许可证画的红线所有 7-Zip 系工具都一样。五分钟上手安装、验证与编译Windows 用户有两条路按你的现状选一条已有官方 7-Zip下载Codecs.7z把zstd-x64.dll等六个 DLL 按系统位数放进C:\Program Files\7-Zip\Codecs\32 位对应C:\Program Files (x86)\7-Zip\Codecs\重启 7-Zip 即可。它不动你的 GUI 和右键菜单纯粹是插件。想一步到位运行完整安装包会一并带上增强版文件管理器与资源管理器右键菜单右键添加到 xx.7z会沿用上一次压缩对话框的全部参数。装完用一条命令验证7z.exe i。输出里Codecs:一栏应该能看到ZSTD、BROTLI、LZ4、LZ5、LIZARD、FLZMA2六行外加一串新增哈希算法BLAKE3、XXH64 等。Linux/macOS 用户直接编译独立二进制7zzgit clone https://gitcode.com/gh_mirrors/7z/7-Zip-zstd cd 7-Zip-zstd/CPP/7zip/Bundles/Alone2 make -j -f ../../cmpl_gcc.mak # 无汇编版产物 7zz make -j -f ../../cmpl_gcc_x64.mak # x86-64 优化版需先装 asmc 汇编器常用配置一个参数换一个引擎压缩参数全部走-m0指定主算法、-mx指定级别其余语法和 7-Zip 完全一致7z a app.7z -m0zstd -mx5 # 日常平衡Zstandard 级别 5 7z a fast.7z -m0lz4 -mx1 # 要速度LZ4 级别 1 7z a small.7z -m0brotli -mx9 # 要体积Brotli 级别 9 7z a tiny.7z -m0flzma2 -mx9 # 高压缩比、低内存Fast-LZMA2注意各算法级别上限不同Zstandard 是 1–22Brotli 是 0–11LZ4 是 1–12LZ5 是 1–15Lizard 是 10–49分段含义不同Fast-LZMA2 是 1–9。级别超界会直接报错别把其他工具的习惯数值照搬过来。多线程用-mmt-mmton自动按核心数分配-mmt8手动指定 8 线程。进阶技巧管道流与 BCJ 预处理管道是它最实用的隐藏技能——不解包就能查看 zstd 压缩的 tar 内容7z x -so test.tar.zst | 7z l -si -ttar压缩可执行文件时-mx1以上会自动启用 BCJ 预处理器把 x86 跳转地址改写成相对偏移exe/dll 的压缩率显著提升。完整版开箱即用插件模式则必须显式写成-m0bcj -m1zstd -mx1这种双链形式因为插件环境里没有 bcj2 这个多流过滤器。算法对照表六种引擎的取舍准则以下数据取自仓库 README 的官方描述可作为选型依据算法级别范围速度画像压缩比适合场景Zstandard1–22实时压缩解压极快速度/压缩比可宽范围调节中上通用归档、网络传输Brotli0–11与 deflate 速度相当更高更密静态资源、长期存储LZ41–12单核压缩 400 MB/s解压可达数 GB/s低实时备份、游戏资源LZ51–15比 LZ4 慢比 LZ4 好已被 Lizard 取代Lizard10–49解压 1000 MB/s 以上10 级段比 LZ4 快约 10%中想快且不小的平衡Fast-LZMA21–9比标准 LZMA2 快 20–100%级别 5 以上最高略低于 LZMA2高压缩比且内存受限一句话判断准则解压速度优先选 LZ4压缩比优先选 Fast-LZMA2 或 Brotli两头都要、还想要随时可调选 Zstandard内存紧张却要高压缩比选 Fast-LZMA2——它每线程的附加内存比标准 LZMA2 少得多。实战让 CI 打包从半小时缩到几分钟回到开头的发布场景。你的流水线每天要把含二进制和资源的产物目录打成 7z之前 LZMA2 单线程要压二十多分钟。换成 Zstandard 多线程一条命令解决#!/bin/bash # 产物打包Zstandard 级别 7 自动多线程 保留时间戳 7z a release-$(date %Y%m%d).7z \ -m0zstd -mx7 -mmton -mtcon \ dist/体感变化是质变的压缩耗时从几十分钟级降到分钟级实际取决于核心数与磁盘 IO体积只比 LZMA2 略大一点。如果产物里 exe/dll 占大头把-mx7提到-mx9BCJ 预处理会让可执行文件再小一截。解压端也没有额外负担——7z 容器格式与官方完全一致接收方装同样的插件或完整版即可解开。新手最容易踩的六个坑1. 杀毒软件报毒大概率误报。发布版由 GitHub Actions 在微软数据中心即时构建可先对比 SHA256 校验和自证官方维护了一份误报清单issue #451处理方式是向杀毒厂商申诉。2. 插件模式压 exe 报错插件版没有 bcj2 过滤器压二进制必须写-m0bcj -m1zstd -mxN双链形式。3. 插件版不能生成 .zst 独立文件对插件只覆盖.7z容器内的编解码。要直接产出.zst/.lz4文件请用完整版或7zz。4.-mx22报参数无效级别上限因算法而异见对照表。混用前先查表Zstandard 的 22 在 Brotli 那儿是 11。5. 解压别人的 .zst 提示格式未知先跑7z i确认 DLL 被正确加载Libs:一栏应列出Codecs\zstd-x64.dll并核对 DLL 位数是否与 7-Zip 安装一致。6. Linux 编译后性能一般cmpl_gcc.mak是无汇编版能编译但发挥不出全部性能想要最快的 x86-64 二进制先装 Asmc 汇编器再走cmpl_gcc_x64.mak。仓库DOC/目录下的7zFormat.txt、Methods.txt以及C/、CPP/源码都是排查问题的第一手资料。下一步从验证到改造你的流程7-Zip-Zstandard 的价值一句话讲完它把 7-Zip 的稳定容器和现代压缩算法的速度与压缩比装进了同一个二进制。它适合三类人——被打包时间卡脖子的 CI 维护者、追求压缩比又抠内存的运维、以及想用一套命令在多平台压所有格式的开发者。接下来建议你按这个顺序行动按五分钟上手装好用7z i验证六个算法全部就位拿你自己的数据跑一遍对照表-m0换算法、-mx换级别把实战脚本改造成你的备份或发布流程遇到问题先查仓库 README 与DOC/文档再决定是否提交 issue 或贡献代码。算法的账跑一次自己的数据最清楚——现在就去试。【免费下载链接】7-Zip-zstd7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表