bzip 和 gzip 的优缺点是什么?

bzip 和 gzip 的优缺点是什么?

我已经了解 gzip 很多年了,最近我看到有人在工作中使用 bzip。它们基本上是等效的吗,还是其中一个相对于另一个有明显的优缺点?

答案1

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

decompression speed (fast > slow): lzop > gzip, zip > xz > 7z > rar > bzip2
compression speed (fast > slow): lzop > gzip, zip > xz > bzip2 > 7z > rar
compression ratio (better > worse): xz > 7z > rar, bzip2 > gzip > zip > lzop
availability (unix): gzip > bzip2 > xz > lzop > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip > bzip2, lzop, xz

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

非 Unix 原生格式(zip、rar、7z)不保留所有 Unix 元数据(所有权、权限)。如果需要,请使用压缩 tar。

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

答案2

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

答案3

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

您可以在通用性 (.gz) 和压缩性稍强的 (.bz2) 之间进行选择。只有您才能说您更关心哪一个。

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

答案4

http://tukaani.org/lzma/benchmarks.html,gzip的压缩速度是bzip2的两倍,解压速度是bzip2的十倍。

例如,在 travis 等上使用 s3 缓存时,您需要压缩/解压缩的速度,而不仅仅是小尺寸,gzip 可能是一个很好的权衡。

相关内容