电脑必备
部署包解压速度差三倍,我拿压测脚本把Win解压缩和7-Zip又过了一遍
72 0 16
最近发版,CI 产出的部署包从 300M 涨到 1.2G,解压时间一下成了流水线里的显眼项。手头两台测试机(Win10 22H2 / Win11 23H2,都是 NVMe),我干脆把 Win解压缩和 7-Zip 各跑 5 轮,掐表看数据。
测试条件
- 包:同一个 tar.gz 部署包 + 一份 800M 的日志压缩包(含 1.2 万个嵌套小文件)
- 方式:图形界面手动解压一次,命令行各跑 3 次取中位数
- 变量控制:关掉杀软实时防护,清系统缓存,固定同一分区
结果
- 单一大包:Win解压缩 11.2s,7-Zip 34.8s,差三倍,Win解压缩确实快。
- 嵌套小文件包:Win解压缩 48s,7-Zip 52s,差距缩到 8% 左右,文件一多就没那么神了。
- 命令行:7-Zip 的
7z x -oD:\out -y直接跑,还能-so走管道接后续处理;Win解压缩这边我试了WinRAR.exe x参数,管道和重定向基本不灵,批处理里用起来别扭。
结论
- 普通用户、单包解压:Win解压缩省时间,没毛病。
- 要写脚本、接 CI、做幂等清理:7-Zip 的命令行和退出码更可控,我现在流水线里解压那一步还是 7z。
- 另外提一句,Win解压缩解嵌套包时 CPU 单核跑满,多线程参数我没找到可调的,这一点 7-Zip 的
-mmt好歹能拧。
我不是要拉踩,两把工具定位本来就不一样。想问下各位:有没有人在 Windows 上把 Win解压缩的静默解压塞进批处理成功过?尤其是带密码的包,退出码怎么判断成功失败?我这边试了两版脚本都拿不到可靠返回,求个实测过的写法。
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
