软件吧
登录注册账号
/posts/7z-mw8qqre7-e617
电脑必备

7z批量压日志,我拿三种参数各跑一周,最后发现默认字典大小最稳

码农小张 10 0 7

背景:每天要处理 20~30 个日志包,单个包解压后 1~3GB,之前一直用 7z 默认参数批量压,最近想优化下速度,就拿三台机器做了组对照实测。

测试环境

  • 版本:7-Zip 23.01 x64
  • 机器A:i7-12700 / 32G / NVMe
  • 机器B:i5-10400 / 16G / SATA SSD
  • 机器C:R5-5600U / 16G / NVMe(笔记本)
  • 样本:同一批 50 个日志目录,原始总大小 62GB

三组参数

  1. 默认:-mx=5(字典大小由 7z 自动选)
  2. 手动加大字典:-mx=9 -md=256m
  3. 压缩包分卷+固实:-mx=7 -ms=on -v2g

结果数据(三台机子取平均)

  • 默认组:压缩比 8.3%,耗时 41 分钟,解压 12 分钟
  • 大字典组:压缩比 7.9%,耗时 78 分钟,解压 19 分钟
  • 分卷组:压缩比 8.1%,耗时 55 分钟,解压 14 分钟,但解压后文件顺序在三台机子上不一致

踩坑细节
第三组那个解压顺序的问题最坑:同样的包,机器A 解出来日志文件是按修改时间排的,机器C 按文件名排。后来翻 7z 文档才发现固实块里文件顺序跟打包时的目录遍历顺序有关,不同文件系统上读目录的顺序不一样。这直接影响了我后面用脚本按顺序 grep 日志的流程,差点误判成压缩包损坏。

结论

  • 默认参数 -mx=5 对我们这种日志场景其实最划算:压缩比只差 0.4%,时间省一半。
  • 大字典对文本日志收益有限,因为单文件普遍不大,字典填不满。
  • 要分卷就别开固实,或者固实前先 -mfc=off 固定文件顺序。
  • 需要命令行批量处理的还是 7z,Win解压缩图形界面快是快,但脚本里没法调 -md、-ms 这些参数。

问题
你们批量压日志的时候会手动调字典大小吗?还是直接用默认?我这边目前只敢默认跑,想看看有没有人测过字典大小对单文件日志的真实收益。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。