zip 文件解压速度比复制更快

zip 文件解压速度比复制更快

系统 Win 7 32 位。我正在使用 WinRAR 提取 .rar 文件,但我认为对于任何压缩文件来说都是一样。我有:

1)SomeSourceCodeFolder.rar -> 解压 -> SomeDestCodeFolder

2)SomeSourceCodeFolder->复制->SomeDestCodeFolder

第一种方法通常比第二种方法快得多。就我而言,复制一个 300mb 的代码文件夹需要 45 分钟(我只等了 5 分钟,没有费心完成它),但是当我尝试使用 winRAR 提取执行相同操作时,只需大约 45 秒即可完成。

这是为什么?压缩文件不是要经过解密 + 复制到文件系统吗?难道它不应该总是比单独复制慢吗?

答案1

对于某些硬件来说,这完全有意义:快速的 CPU、慢速的磁盘(HDD 而不是 SSD)、只有一个磁盘。

必须读取和写入数据。两种情况下写入的数据量相同,但读取压缩文件意味着需要读取的数据更少。此外,读取单个大文件通常比读取目录快得多。如果有许多小文件,这种影响会更大。您可以通过将目录结构读入缓存来减少它,这样磁盘就不必在 inode 和数据块之间跳转:

# Edit: This works under Unix only
find /dir/to/be/copied -printf "" # just read the names
find /dir/to/be/copied -perm 777 -printf "" # just read the inodes

如果 CPU 不会减慢数据输入速度(因为放气比读取花费更多时间)则提取比复制更快。

如果您将其从 SSD 复制到另一台设备并且您的 CPU 是石器时代的,那么复制速度会更快。

相关内容