系统Win 7 32位。 我正在使用WinRAR来提取.rar文件,但是我认为对于任何压缩文件都是一样的。 我有:
1)SomeSourceCodeFolder.rar – >解压 – > SomeDestCodeFolder
2)SomeSourceCodeFolder – > copy – > SomeDestCodeFolder
第一种方式一般比第二种方式快得多。 在我的情况下,复制一个300mb的代码文件夹,它说45分钟(我只等了5分钟,没有打扰完成它),但是当我尝试用winRAR解压缩做同样的事情,只需要大约45秒完成。
这是为什么? 不压缩的文件通过解密+复制到文件系统? 不应该总是比单独复制慢?
这对于某些硬件来说是非常有意义的:快速CPU,慢速磁盘(HDD而不是SSD),只有一个磁盘。
数据必须被读取和写入。 写入的数据量在两种情况下都是相同的,但是读取压缩文件意味着需要读取更less的数据。 此外,读取单个大文件通常比读取目录快得多。 如果有很多小文件,效果会更大。 您可以通过将目录结构读入caching中来减less它,以便磁盘不必在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不减慢数据input速度(因为放气需要比读取更多的时间),那么提取比复制要快。
如果您将SSD从一个SSD复制到另一个设备,并且您的CPU来自石器时代,那么复制将会更快。