存档个人和整个文件组的最佳选择是什么?

时间:2014-10-20 16:28:02

标签: compression archiving

如果我想我有不同大小的N个文件。 如果我使用压缩算法,例如ZIP或7ZIP,压缩单独文件和所有压缩文件之间的大小是否有任何差异?

换句话说,如果f(i)是i文件,而C(f(i))=压缩的文件是真的:

[C(f(1),f(2),...,f(n))]的大小==大小[C(f(1))+ ... + C(f(n) ))]

2 个答案:

答案 0 :(得分:1)

如果文件有一些相似之处,那么对于" solid"可能会有明显的优势。 archive,将文件放在一个序列中并将它们压缩为一个大文件,如.tar.gz文件,而不是单独压缩每个文件,如.zip

如果文件很小,优势更大。

我刚刚对一小组文件进行了快速测试,其中.tar.gz比具有相同内容的.zip文件小15%。两者都使用相同的压缩算法在相同的压缩级别进行压缩。

答案 1 :(得分:0)

要考虑的是zip标头。这将是一些字节数,加上每个文件的开销。不知道实际数字是什么,但是编造一些数字:

100 bytes - zip overhead
10 bytes - per-zipped file data

10 files, each zipped invidually: 10x100 + 10x10 = 1100 bytes overhead
10 files, all in a single zip file: 1x100 + 10x10 = 200 bytes overhead

这完全忽略了能够创造更紧密的效率所带来的任何效率。从单个.zip中包含所有10个文件的较大数据集中压缩字母表。