![使用 7-zip 压缩时几乎不占用 CPU](https://linux22.com/image/1573865/%E4%BD%BF%E7%94%A8%207-zip%20%E5%8E%8B%E7%BC%A9%E6%97%B6%E5%87%A0%E4%B9%8E%E4%B8%8D%E5%8D%A0%E7%94%A8%20CPU.png)
答案1
我看到了应用标志后的相同行为-mx9
。
删除该标志后,我发现所有核心都得到了充分利用。
“超级”压缩(mx9
)算法正在进行更详尽且内存密集型的搜索,因此受到内存带宽的限制。
使用-mx5
或-mx7
会导致更多的 CPU 使用率。
确实,从这一页看来,超高 (9) 和高 (7) 设置会导致字典和其他设置明显变大,以检查数据是否压缩。这会大大降低压缩速度,而且由于数据在内存中,内存带宽是限制因素。
使用更大的字典大小将显著影响压缩速度,因为对于要压缩文件上的每组字节,现在必须使用算法搜索大小为 2 倍或 4 倍的字典,而这些算法最终可能会以不同的方式多次搜索数据集。随着内存需求的增加,这可能会导致速度呈指数级下降。
Ultra 还更改了字典搜索算法,大概是将其改为在压缩方面效率更高(如果不是在速度方面的话)的算法 - 如果速度更快的话,那么它就会成为默认算法。这会进一步降低速度。
压缩算法通常基于当前硬件的状态而编写,并经过一系列折衷。设置会根据其理论峰值压缩率进行调低,以便在合理的时间内实现相对合理的压缩。如果将所有内容都调至最大压缩率,则最终会导致内存需求以及内存带宽和 CPU 时间大幅增加。此外,解压缩也可能需要更多资源。
使用“超”设置只适用于您想要最大程度压缩且不受时间限制的数据,您看到的结果也反映了这一点。因此,您现在遇到了系统限制之一。
如果您只是将文件发送给朋友并且可以容忍文件大几个百分点,那么“正常”设置就足够了。