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

评论

虽然这是一个有效且正确答案的老问题,但我还是想向人们指出这个google结果:tukaani.org/lzma/benchmarks.html,因为它确实将其进一步分解了

bzip不是压缩文件,gzip是档案文件吗?

@juniorRubyist来源?

我刚刚听到了我忘记了哪里。

没有提及随机访问? stackoverflow.com/questions/14225751/…

#1 楼

Gzip和bzip2在功能上是等效的。 (曾经有一个bzip,但是它似乎已经完全消失了。)其他常见的压缩格式是zip,rar和7z;它们是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


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

Rar还存在一个缺点,据我所知,没有免费的软件可以创建rar存档或可以解压缩所有rar存档。其他格式有免费的实现,没有(严重的)专利权利要求。

评论


据我所知,自XP以来的所有Windows版本都可以使用资源管理器本地打开zip文件。

– Lie Ryan
2010年11月2日在15:00

@ new123456在OpenBSD上,gzip在基本系统中,但是bzip2必须从软件包中安装。许多* WRT路由器包含gzip,但不包含bzip2。

–吉尔斯'所以-不再是邪恶的'
2011年7月3日在17:53

@Gilles我可以确认我的DD-WRT版本:08/12/10(SVN版本:14929)没有bzip2,但是确实有gzip。

– Urda
2012年3月31日16:10



@mlainz原始研究。这不是维基百科。

–吉尔斯'所以-不再是邪恶的'
16年1月23日在10:09

它似乎完全消失了-普通的旧bzip消失了,因为它使用了获得专利的算法编码。由于该专利,它被重新设计为改为使用霍夫曼编码。在重新设计期间,添加了新功能和改进。不过,使它成为唯一的压缩算法的基本要素Burrows-Wheeler变换在两个版本中均保持不变。

–森林
19年1月1日在3:23



#2 楼

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

评论


另外,gzip似乎受到更好的支持,尤其是在Windows上。

– Dentrasi
2010-10-30 17:32

@Dentrasi:winrar / 7zip都支持,这是什么问题?

–whitequark
2010-10-31 4:26

@whitequark:受到广泛支持对于Unix来说最重要,因为用户可能没有root访问权限,并且必须使用已安装的东西。也适用于用户没有管理员访问权限的Windows环境(学校/图书馆/等)。

–马修
2012年11月26日19:23

@Matthew,您不需要管理员权限即可使用很多移植的自由软件,包括7zip。

–whitequark
2012年11月28日,0:26

@IQAndreas:一些基准:1、2、3

– Lie Ryan
16年2月9日在12:45

#3 楼

算法具有不同的时间,内存,空间折衷。请记住,这些算法是相当久以前编写的,并且您的智能手机的CPU数量是当时台式机的很多倍。

您的选择介于通用性(.gz)和更多压缩(.bz2之间)之间。 )。只有您可以说出您更在乎的内容。

.gz的一个优点是它可以压缩流,这是一个序列,您可以不后顾之忧。这使其成为HTTP流的官方压缩器。因此,我需要使用gzip一次,但不太可能需要考虑它。

评论


短语“ gz可以压缩流”的另一种方式是gz在串联下是同态的:gz(concat(x,y))== concat(gz(x),gz(y))。 IMO这是gz最有用的功能之一。

– BallpointBen
20 Mar 4 '20 at 16:57

#4 楼

这是测试压缩算法的站点列表,您只需要进行一些挖掘就可以找到bzip和gzip,但是大多数站点都将列出算法的特征。这样,您就可以比较对您而言重要的内容,大小(压缩比),时间,内存,CPU。http://www.maximumcompression.com/benchmarks/benchmarks.php

#5 楼

以我的经验,bzip始终提供比gzip更好的压缩率。加上7zip作为管理器和bzip算法,7zip可以利用多核处理器。

#6 楼

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

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