如果我想我有不同大小的N个文件。 如果我使用压缩算法,例如ZIP或7ZIP,压缩单独文件和所有压缩文件之间的大小是否有任何差异?
换句话说,如果f(i)是i文件,而C(f(i))=压缩的文件是真的:
[C(f(1),f(2),...,f(n))]的大小==大小[C(f(1))+ ... + C(f(n) ))]
答案 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个文件的较大数据集中压缩字母表。