7zip 中的不同压缩方法:哪种最适合什么任务?

Gru*_*ear 69 compression 7-zip file-archiver

在此处输入图片说明

所以7zip中有不同的压缩方法。哪种方法最适合什么任务?

例如:LZMA 和 LZMA2 之间的一个区别是我可以选择我所有的 CPU 内核,而在 LZMA 2 内核中是最大的。

soa*_*dos 27

除非您希望在无法处理 LZMA 2 档案的系统上提取档案,否则请使用 LZMA 2。

一般来说,大多数现代压缩算法提供大致相同的压缩,并且关于您一次可以使用的内核数量,您可以决定要使用多少个。一般来说(除非您正在创建大型档案),但没有理由需要多个。此外,多核进行压缩,瓶颈可能成为硬盘。

  • 旁注:更好的压缩结果(“超”)主要是由 cpu 和(重要的)ram 购买的。lzma2-ultra-dictsize(64mb)-4threads 会吃掉 2+gb 的内存,bzip2-ultra-dictsize(900kb) 会吃掉 69mb 的内存。 (3认同)

Wil*_*iam 14

7-Zip(至少截至 2019 年 9 月 27 日)有一个内置的帮助文档,其中非常非常好地解释了您可以选择的各种设置以及通常每个设置的用途。

没有基准测试结果或任何东西,但这些信息足以让我相信我选择了“足够好”而不是“意外糟糕”的设置。

帮助文档可通过 7-Zip 文件管理器以及添加到存档对话框获得。

我发现有用的页面的“内容”路径(直接从“添加到存档”对话框中打开)是:

File Manager / Plugins / 7-Zip / Add to Archive Dialog Box
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这是压缩方法部分的粗略复制/粘贴:

方法说明

  • LZMA
    • 它是 7z 格式的基本压缩方法。即使是旧版本的 7-Zip 也可以解压缩使用 LZMA 方法创建的档案。它提供高压缩比和非常快速的解压。
  • LZMA2
    • 7z 格式的默认压缩方式。LZMA2 是基于 LZMA 的压缩方法。它提供了比 LZMA 更好的多线程支持。但在某些情况下,压缩比可能会更糟。为了获得 LZMA2 的最佳压缩率,请使用 1 或 2 个 CPU 线程。如果您使用具有 2 个以上线程的 LZMA2,7-zip 会将数据拆分为块并独立压缩这些块(每个块 2 个线程)。
  • PPMd
    • Dmitry Shkarin 的 PPMdH 算法,变化很小。通常它为文本文件提供高压缩比和高速。
  • 压缩包
    • 基于BWT算法的标准压缩方法。通常它为文本文件提供高速和相当好的压缩率。
  • 放气
    • ZIP 和 GZip 格式的标准压缩方法。压缩比不会太高。但它提供了相当快的压缩和解压缩。Deflate 方法仅支持 32 KB 的字典。
  • 放气64
    • 具有更大字典 (64KB) 的 Deflate 算法的修改版本。

  • 很棒的发现。我从来不知道为什么我用 LZMA2 压缩的文件比用 LZMA 压缩的文件大 2%。现在,将线程数从 32 减少到 2,它们甚至可以缩小约 1%。:) (2认同)

Ser*_*ous 13

Lzma2 在使用 4 个或更多内核时速度更快,并且提供更好的压缩。这份文件解释了这一切。

  • 我并不是说该文档无法使用,但它存在一系列问题。值得注意的是,作者甚至没有说明正在压缩什么样的数据(文本?图片?加密数据?),在适用的情况下没有使用相对大小,并且似乎根本不了解 _solid_ 档案。 (6认同)
  • 您忘记提及,当使用 4 个或更多线程时,使用 Lzma2 会产生更差的压缩。这是因为工作是分散的。根据个人经验,我认为 Lzma2 在 3 个或更少线程上运行可以实现最佳压缩率。 (2认同)