首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zip /7 Zip压缩差异

Zip /7 Zip压缩差异
EN

Stack Overflow用户
提问于 2014-02-24 15:56:39
回答 2查看 17.8K关注 0票数 11

我有一些压缩文件,我需要分发给用户,其中大约130个。每个zip文件包含许多类似的文本、html、xml和jpg文件。总共,zip文件总计146 In;解压缩后,其内容共计551 In。

我想把所有这些文件一起以尽可能小的格式分发给用户。我研究了两种不同的方法,每种方法使用两种不同的压缩方案,zip和7zip (据我了解,它们要么是LZMA,要么是其中的一个变体):

  1. 将所有压缩文件压缩为压缩文件并发送该文件(single.zip/7z)
  2. 将压缩后的压缩文件压缩为压缩文件,并发送该文件(combined.zip/7z)

例如,假设我有3个zip文件,A.zip、B.zip和C.zip,每个文件包含一个文本文件、一个html文件和一个XML文件。使用方法1,将创建一个包含A.zip、B.zip和C.zip的压缩文件。使用方法2,将创建一个包含A.txt、A.html、A.xml、B.txt、B.html、B.xml、C.txt、C.html和C.xml的压缩文件。

我的假设是,在这两种压缩方案中,方法2生成的文件都会比方法1生成的文件更小,或者至少与方法1生成的文件大小相同,因为您可以通过综合考虑所有文件来利用效率。至少,方法2将避免多个zip文件的开销。

令人惊讶的结果(由7zip工具生成的文件大小)如下:

  1. single.zip -142
  2. 单机7z-124
  3. combined.zip -149
  4. 7z-38

对于7zip格式产生比zip格式更小的文件(结果2/4和结果1/3),我并不感到奇怪,因为它通常比zip压缩得更好。令人惊讶的是,对于zip格式来说,将所有130个zip文件压缩在一起比压缩所有未压缩的内容(结果3和结果1)的输出文件要小。

为什么将几个压缩文件一起压缩比将解压缩的内容一起压缩更有效?

我唯一能想到的是,在压缩过程中,7zip格式可以跨所有文件内容构建一个字典,这样它就可以利用文件之间的相似之处,而zip格式则在每个文件中构建字典。这是真的吗?即便如此,也无法解释为什么结果3比结果1大7兆。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2020-08-27 04:24:34

  • .zip和.7z都是无损压缩格式。.7z是较新的,可能会给您提供更好的压缩比,但它不像.zip那样得到广泛的支持,我认为压缩/解压缩在计算上比较昂贵。
  • 多少更好取决于您正在压缩的文件类型,但根据维基百科关于7zip的文章

In 2011, TopTenReviews found that the 7z compression was at least 17% better than ZIP,[15] and 7-Zip's own site has since 2002 reported that while compression ratio results are very dependent upon the data used for the tests, "Usually, 7-Zip compresses to 7z format 30–70% better than to zip format, and 7-Zip compresses to zip format 2–10% better than most other zip-compatible programs."[16]

票数 7
EN

Stack Overflow用户

发布于 2021-10-04 20:20:38

为什么将几个压缩文件一起压缩比将解压缩的内容一起压缩更有效呢?

您的假设是正确的: 7zip使用固体压缩,而zip不使用。它的工作原理和你的字典想法很相似。通过将不同文件的公共部分合并到一个“块”中,从而缩小大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21992551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档