当前位置: 首页 > 知识库问答 >
问题:

Zip/7Zip压缩差异

空鸿云
2023-03-14

我有许多zip文件,我需要分发给用户,大约130个。每个zip文件包含许多类似的文本、html、xml和jpg文件。zip文件总计146兆字节;解压缩后,它们的内容总计551MB。

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

  1. 将所有zip文件压缩到一个压缩文件中,并发送该文件(single.zip/7z)
  2. 将压缩文件的解压缩内容压缩到压缩文件中,并发送该文件(combined.zip/7z)

我的假设是,在任何一种压缩方案下,方法2生成的文件都将比方法1生成的文件小,或者至少与方法1生成的文件大小相同,因为您可以通过将所有文件放在一起来利用效率。至少,方法2可以避免多个zip文件的开销。

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

  1. single.zip-142mb
  2. 单.7z-124mb
  3. 组合.zip-149mb
  4. 组合。7z-38mb

我对7zip格式比zip格式(结果2/4 vs结果1/3)产生更小的文件并不感到惊讶,因为它通常比zip压缩得更好。令人惊讶的是,对于zip格式,压缩所有130个zip文件的结果比压缩所有未压缩内容的结果更小(结果3 vs结果1)。

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

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

共有1个答案

盖博简
2023-03-14

>

  • .zip和.7z都是无损压缩格式。7z是新的,可能会给你一个更好的压缩比,但它不像。zip那样得到广泛的支持,而且我认为压缩/解压缩在计算上更昂贵。

    根据维基百科关于7zip的文章,更好的程度取决于您正在压缩的文件类型

    2011年,TopTenReviews发现7z压缩比ZIP至少好17%,[15],7-ZIP自己的网站自2002年以来报告说,虽然压缩率结果非常依赖于测试所用的数据,“通常,7-ZIP压缩到7z格式比压缩格式好30-70%,而7-ZIP压缩到ZIP格式比大多数其他与ZIP兼容的程序好2-10%。”[16]

  •  类似资料:
    • 我正在尝试使用我从apache共享资源压缩示例网页获得的以下代码,以使用sevenZ类创建一个zip文件,希望它的压缩速度比常规的java zip更快。这就是我的代码的样子 我得到了这个错误,看起来很不相关 线程mainjava.lang.NoClassDefFoundError中的异常:org.tukaani.xz.FilterOptionsjava.lang.J9VMInternals.ver

    • 本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip

    • 本文向大家介绍PHP自带ZIP压缩、解压缩类ZipArchiv使用指南,包括了PHP自带ZIP压缩、解压缩类ZipArchiv使用指南的使用技巧和注意事项,需要的朋友参考一下 要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip 对于win系统,直接去掉php_zip.dll 扩展的注释,

    • 我试图压缩字符串上转换的Xml列表,将它们保存在一个zip文件中,并在restful上作为POST的主体返回。但是每次我保存文件时,都会出现错误“存档格式未知或损坏”。 有人能帮我吗?

    • 写压缩文件 # gzip_write.py import gzip import io import os outfilename = 'example.txt.gz' with gzip.open(outfilename, 'wb') as output: with io.TextIOWrapper(output, encoding='utf-8') as enc: e

    • 本文向大家介绍Java实现的zip压缩及解压缩工具类示例,包括了Java实现的zip压缩及解压缩工具类示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的zip压缩及解压缩工具类。分享给大家供大家参考,具体如下: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《J