bzip 与 gzip 的优缺点?

rip*_*234 144 compression gzip bzip2

我已经知道 gzip 多年了,最近我看到 bzip 在工作中被使用。它们基本上是等价的,还是其中一个比另一个有明显的优缺点?

Gil*_*il' 176

Gzip 和 bzip2 在功能上是等效的。(曾经有一个 bzip,但它似乎已经完全从世界上消失了。)其他常见的压缩格式有 zip、rar 和 7z;这三个同时进行压缩和存档(将多个文件打包成一个)。以下是速度、可用性和典型压缩率方面的一些典型评级(请注意,这些评级有些主观,不要将其视为福音):

decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2
Run Code Online (Sandbox Code Playgroud)

如您所见,没有明显的赢家。如果您想依赖可能已经安装的程序,请在 Windows 上使用 zip(或者如果可能,使用自解压存档,因为 Windows 不附带任何这些)和 gzip 在 unix 上。如果您想要最大压缩,请使用 7z。

Rar 也有缺点,据我所知,没有免费软件可以创建 rar 档案或可以解压所有 rar 档案。其他格式有免费的实现并且没有(严重的)专利要求。

  • @new123456 在 OpenBSD 上,gzip 位于基本系统中,但必须从包中安装 bzip2。许多 *WRT 路由器包括 gzip 但不包括 bzip2。 (22认同)
  • @mlainz 原创研究。这不是维基百科。 (14认同)
  • _它似乎完全消失了_ - 简单的旧`bzip` 消失了,因为它使用了专利算法编码。由于该专利,它被重新设计为使用霍夫曼编码。在这次重新设计期间,添加了新功能和改进。但是,使其成为独特压缩算法的基本要素,即 Burrows-Wheeler 变换,在两个版本中都保持不变。 (4认同)
  • 据我所知,自 XP 以来的所有 Windows 版本都可以使用文件资源管理器本机打开 zip 文件 (3认同)
  • @Gilles 我可以确认我的 DD-WRT 版本:08/12/10(SVN 修订版:14929)没有 bzip2,但有 gzip。 (2认同)

Lie*_*yan 26

据我所知,gzip 总体上更快,而 bzip 总体上产生更好(更小)的压缩。

  • @Dentrasi:winrar/7zip 都支持,有什么问题? (5认同)
  • @Matthew,您不需要管理员权限即可使用许多移植的免费软件,包括 7zip。 (4认同)
  • @IQAndreas:一些基准测试:[1](http://tukaani.org/lzma/benchmarks.html),[2](http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP -vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html), [3](https://www.rootusers.com/gzip-vs-bzip2-vs-xz-performance-comparison/) (2认同)

Ric*_*lka 7

这些算法具有不同的时间、内存和空间权衡。请记住,这些算法是在很久以前编写的,您的智能手机的 CPU 比当时的台式机多很多倍。

您的选择介于通用性 (.gz) 和更多压缩 (.bz2) 之间。只有你可以说你更关心哪个。

.gz 的一个优点是它可以压缩一个流,一个你无法回头看的序列。这使它成为 http 流的官方压缩器。因此,我需要使用一次 gzip,但您不太可能需要考虑它。

  • 表达“gz 可以压缩流”的另一种方式是 gz 在串联下是同态的:gz(concat(x, y)) == concat(gz(x), gz(y))。在我看来,这是 gz 最有用的功能之一。 (5认同)