为什么压缩过程比提取过程花费的时间更长?

为什么压缩过程比提取过程花费的时间更长?

每当我们使用 zip、rar 或 7z 等方法压缩文件时,为什么压缩过程比提取过程花费的时间更多?

答案1

具体原因取决于具体的压缩算法,但底线是:

正确压缩文件的方法不止一种,但正确解压缩文件的方法只有一种。

压缩就是找到一种使用更少的数据单元来表达相同信息的方法。可用的方法取决于特定的压缩算法,但几乎所有方法(除了琐碎和情境算法,如行程编码) 有多种有效解决方案。压缩算法必须在数据中找到可用于压缩的模式。更复杂的模式可能会产生更好的结果,但它们更难找到 - 即它将花费更多时间和/或内存。

另一方面,对于解压缩,答案只有一个:你想恢复原始文件。这种算法与压缩完全不同,因为它基本上将压缩文件解释为如何生成原始文件的指令列表。

有趣的事实:在极端情况下,解压缩可能比压缩慢。一种情况是,当你在存储中有一个非常可压缩但又相当大文件时,它的读取速度明显慢于 CPU 压缩数据的速度,写入速度甚至更慢。在这种情况下,压缩和解压缩都会受到存储的瓶颈限制,读取(压缩)的速度会比写入(解压缩)的速度更快。

相关内容