由gzip压缩的较小文件是否大于大文件?

时间:2016-01-20 07:44:20

标签: compression

我有两个不同版本的gcc编译的目标文件:

文件名大小(字节)

a1.o 48194128

a2.o 41984052

a2.o的大小小于a1.o的大小。但是在被gzip压缩之后,a2.o.gz的大小大于a1.o.gz的大小。什么是理论基础?提前谢谢。

1 个答案:

答案 0 :(得分:2)

文件大小和压缩大小之间没有直接关联。

即。 RLE压缩的样本(比GZIP差很多,但更容易显示想法):

  • 文件1:{0,0,0,0} 4个字节压缩为大约2个字节{4,0}
  • 文件2:{1,2,3,4} 4个字节增长到大约8个字节而不是压缩{1,1,1,2,1,3,1,4}

通常,文件中的随机数据比可压缩文件少。

对于已编译的二进制文件,不同的选项可能会触发要包含的额外表(如源位置)或使用不同的(ASCII与UTF-16)字符串表示 - 所有这些都可能会改变压缩可以用于实际的文件中的重复次数压缩二进制文件。