7-zip压缩慢是因默认未启用多线程,可通过图形界面填“-mmt=on”、命令行加参数、配置文件全局勾选、andresguard集成线程数或按算法调优线程来加速。

如果您在使用7-Zip压缩大文件或大量小文件时发现耗时过长,可能是由于默认未启用多线程压缩功能,导致仅使用单个CPU核心参与运算。以下是多种可直接生效的多线程压缩设置方法:
一、通过图形界面启用多线程压缩
该方法适用于日常操作,无需命令行知识,所有设置均在7-Zip文件管理器中完成。关键在于正确填写“附加设定”字段以激活多线程支持。
1、选中待压缩的文件或文件夹,右键选择“7-Zip” → “添加到压缩包…”
2、在弹出窗口中,“压缩格式”必须选择7z(ZIP格式不支持多线程)
3、在“压缩级别”中按需选择(如“正常”或“极限”)
4、滚动至窗口底部,在“附加设定”文本框中输入:-mmt=on(自动启用全部可用逻辑处理器)或-mmt=8(手动指定8线程)
5、点击“确定”开始压缩,此时CPU多核心将被并行调用
二、使用命令行强制指定线程数
该方式精度高、可集成至脚本,适用于AndResGuard、CI/CD等自动化场景,支持动态线程数绑定与算法协同优化。
1、打开命令提示符或终端,进入7-Zip安装目录(如C:\Program Files\7-Zip)
2、执行标准7z格式多线程压缩命令:7z a -mmt=on -mx=7 archive.7z folder/
3、若需限定具体核心数(如避开超线程干扰),改用:7z a -mmt=6 -m0=lzma2 archive.7z *.log
4、对Zstandard算法加速,可组合使用:7zz a -mmt=on -m0=zstd -mx=15 backup.7z data/
三、修改配置文件全局启用多线程
此方法使所有后续图形界面操作默认启用多线程,避免每次手动输入参数,适合长期高频使用者。
1、启动7-Zip文件管理器,点击“工具” → “选项”
2、切换至“系统”选项卡,找到“多线程”设置项
3、勾选“启用多线程压缩和解压”
4、在下方“最大线程数”框中输入数值(建议设为CPU物理核心数,例如8核CPU填8)
5、点击“确定”保存,此后所有新建7z压缩包均自动启用对应线程数
四、在AndResGuard中集成7-Zip多线程
针对Android资源混淆工具AndResGuard用户,其内置7-Zip模块需显式注入线程参数,否则仍运行于单线程模式。
1、在项目build.gradle中定位andResGuard闭包
2、添加配置项:sevenZipThreadCount = Runtime.runtime.availableProcessors()
3、确保use7zip = true已开启,且压缩格式为7z
4、若使用CLI方式调用,需在命令末尾追加参数:-7zip-threads 8
5、验证是否生效:查看构建日志中是否出现Using 8 threads for 7z compression字样
五、高级线程-算法协同调优策略
不同压缩算法对多线程敏感度差异显著,盲目增加线程数可能降低效率;需依据算法特性匹配线程规模。
1、对LZMA2算法(高压缩率场景),推荐线程数≤4,避免内存带宽瓶颈,命令示例:7z a -mmt=4 -m0=lzma2 -mx=9 arch.7z src/
2、对Zstandard(-m0=zstd),可安全启用全部逻辑处理器,配合-mx=15获得速度与压缩比平衡
3、对LZ4算法(极速场景),即使指定-mmt=16也几乎无性能衰减,适合流水线实时压缩
4、禁用固实模式(-ms=off)可进一步提升多线程并行度,尤其在混合类型文件压缩时











