双重压缩是否效果较差



假设我们有多个包存储为.tar.gz文件,我们希望将它们组合成一个包。关于无损文件压缩,我所知道的一切都是它试图在数据中找到模式。由此,我的直觉是,如果我首先将包解压缩为.tar文件,然后将它们组合为一个bundle.tar.gz,它将能够找到更多的模式,从而产生更小的捆绑包。我的直觉正确吗?还是不值得麻烦,直接从.tar.gz文件创建捆绑包会产生类似的结果?

我用随机收集的txts(RFC 1-500,来自https://www.rfc-editor.org/retrieve/bulk/)单独压缩它们中的每一个,然后从压缩的文件中创建最终的.tar.gz,结果会大15%,这支持了我的直觉,但可能没有达到我预期的程度。

total size of txts:                           5.6M
total size of individually compressed txts:   2.7M
size of .tar.gz from txts:                    1.4M
size of .tar.gz from compressed txts:         1.6M

我想更多地了解它的总体表现。

用gzip压缩已经压缩的东西通常会扩展数据,但只扩展很小的一部分,将大小乘以1.0003。

事实上,你从解压缩片段和重新压缩捆绑包中获得了15%的好处,这意味着你的片段必须相对较小,才能让gzip的32K字节匹配距离找到更多的匹配,并将压缩增加那么多。(你没有说明这些单独压缩的文本有多少。(

顺便说一下,将几个.tar文件合并为一个.tar文件很容易。每个.tar文件都以1024个零字节终止。从除最后一个以外的每个.tar文件中剥离它,并将它们连接起来。然后您有一个.tar文件要压缩。

最新更新