假设我们压缩了例如。字节大小的 .txt 文件。压缩并转换为 .zip 文件后,大小将 190 字节。
有没有办法估算或计算“开销”的大致尺寸?
什么因素会影响间接费用?
Zlib计算开销:他们说:“......只有扩展是每16 KB块5个字节的开销(约0.03%),加上整个6个字节的一次性开销流“。
我只是把这个网站告诉我们可以估算“开销”大小。
注意:开销是在压缩版数据中添加的一些额外数据。
答案 0 :(得分:2)
来自the ZIP format ..
假设只有一个中心目录和没有注释和没有额外字段,则开销应类似于以下内容。 (如果添加了任何额外的元数据,开销只会增加。)
所以开销,其中afn
是所有文件名的平均长度,f
是文件的数量:
f * ((30 + afn) + 12 + (46 * afn)) + 22
= f * (88 + 2 * afn) + 22
这当然使ZIP成为非常差的选择非常微小的压缩数据,其中不需要(文件)结构或元数据 - zlib,另一方面,一个非常薄的 Deflate包装器。
对于小型有效负载,较差的Deflate实现也可能导致更大的压缩"大小,例如臭名昭着的.NET实现..
示例:
存储1个文件,名称为" hello world note.txt" (len = 20),
= 1 * (88 + 2 * 20) + 22 = 150
字节开销
存储100个文件,平均名称为14个字母,
= 100 * (88 + 2 * 14) + 22 = 11622
字节开销