Answers:
Compress,Gzip,Bzip,Bzip2不能用于存档多个文件。他们只压缩单个文件。为了归档,它们通常与TAR一起使用。TAR的问题在于它没有索引表。仅当您计划恢复整个过程时,这才是好。如果您期望只还原有限数量的选定文件,则不用担心TAR。要获取tar.gz
或tar.bz2
归档最新文件,您必须解压缩并处理所有文件。如果是zip,rar或7-zip,它将进入索引表,跳至存档的相关位置,仅处理相关文件。
好的,TAR不在了,所以您只剩下ZIP,RAR和7-ZIP。在这三者中,ZIP是最泛滥的,几乎所有东西都支持它,许多应用程序都具有内置支持。而且速度很快。另一方面,7-ZIP也是可移植的,库是LGPL,并且压缩率比其他两个要好得多,这是因为CPU消耗更多。RAR是真正的失败者,既没有强大的压缩能力,也没有真正的可移植性,也没有速度。
编辑:似乎最好的选择是7-ZIP,但使用bzip2压缩方法。这样,您就不会遇到TAR的缺点,但是您仍然可以利用bzip2多核支持。请参阅本文。
推荐阅读:
多核时代的文件压缩(Jeff Atwood aka CodingHorror,2009年2月)
我一直在进行文件压缩,因为我们每天都会在Stack Overflow上生成一些非常大的备份文件。
我们正在数据库服务器上使用最新的64位版本的7zip(4.64)。我不是台式机双核的忠实拥护者,但是对于服务器却毫不费力。CPU内核越多越好!该服务器有两个四核CPU,共有8个内核,我有点沮丧地发现RAR和7zip似乎都没有多使用2个。
即使7zip算法仅使用2个内核进行压缩,其效果仍然惊人,并且在过去几年中发展迅速。我以前推荐的是Rip而不是Zip,但鉴于7zip的效率不断提高,而且它是免费的,而RAR不是,因此这是现在的合理选择。
关于算法:
为什么bzip2的工作速度比7zip快得多?[...] Bzip2使用两个以上的CPU内核来并行化其工作。
这不仅仅涉及效率和速度。当然,它们很重要,您可以查看这些基准并从选项中明智地选择(尽管我建议您使用自己服务器上的数据对自己进行一些简单的基准测试)。但是存档不可避免地会导致再次访问您的数据(否则为什么不删除它呢?)。也许几年以后,您根本就不会访问数据,而是第三方。选择一些您需要访问数据时会遇到的东西以及人们可以识别的东西。我个人使用7zip,但是当我存档文件时,其他人可能需要使用zip。他们知道,很多工具都可以处理。它可能不那么快或不那么小,但是它有助于人为因素。
lzma在压缩率和速度方面似乎都表现出色。
在以下http://tukaani.org/lzma/benchmarks基准测试中,lzma的最快设置所提供的压缩时间比最快的bzip2选项要快得多,而压缩效果却比最慢的bzip2选项要好:
比率bzip2 lzmash 最快35.8%31.7% 最慢的34.0%25.4% 时间bzip2 lzmash 最快1m 26s 0m 58s 最慢2m 37s 12m 20s *压缩适用于Linux的OpenOffice.org 1.1.4的完整安装(203 MB)
它对二进制数据的性能特别好,但是我认为我阅读了一些纯文本基准,其中bzip2的性能优于它。
lzma手册页值得一读:
lzma provides notably better compression ratio than bzip2 especially with files having other than plain text content. The other advantage of lzma is fast decompression which is many times quicker than bzip2. The major disadvantage is that achieving the highest compression ratios requires extensive amount of system resources, both CPU time and RAM. Also software to handle LZMA compressed files is not installed by default on most distributions.
看一下这个Wikipedia条目。走向底部,“效率比较”。它将大致为您提供压缩百分比和花费的时间。所有这些数字将根据使用的机器速度,内存大小等(速度)而变化。
更多压缩基准:
这取决于您要压缩的内容,但是通常7z可以更好地利用多个处理器,并且7z压缩格式本身产生的压缩比zip更高,有时甚至比rar高(尽管rar和7z几乎相等,但是rar不是)不免费...)
几个月前的测试得出了以下结果:
压缩单个10MB访问数据库文件:
Database.mdb 17,240,064 (original)
Database.zip 1,634,794 (Regular zip, 11:1)
Database.rar 262,212 (RAR compression, 66:1)
Database.7z 195,678 (7-zip compression, 88:1)
压缩一个文件夹,其中包含超过九千个不同类型的文件(903,488KB),并得到以下内容(这是源代码和围绕它的所有工具的组合,用于正在开发的软件):
Type Time Size (KB) Compression
ZIP 7:28 247,529 3.7:1
RAR 8:15 222,232 4.1:1
7z 10:49 181,633 5.0:1
为了节省时间,它使用的是Core2 Duo,2GHz,1GB RAM和便宜的硬盘。
因此,在我测试的两个以上zip以外的情况下,7z的压缩率都有了很大的提高,甚至在rar上也得到了改善,但是7z肯定较慢。并不是很明显,但是值得一提。
-亚当