Windows

zip文件提取比複製更快

  • May 29, 2013

系統 Win 7 32 位。我正在使用 WinRAR 提取 .rar 文件,但我認為任何壓縮文件都是一樣的。我有:

  1. SomeSourceCodeFolder.rar -> 提取 -> SomeDestCodeFolder

  2. SomeSourceCodeFolder -> 複製 -> SomeDestCodeFolder

第一種方式通常比第二種方式快得多。在我的情況下,複製一個 300mb 的程式碼文件夾它說 45 分鐘(我只等了 5 分鐘,沒有費心去完成它),但是當我嘗試對 winRAR 提取做同樣的事情時,只需要大約 45 秒即可完成.

這是為什麼?壓縮文件不通過解密+複製到文件系統嗎?它不應該總是比單獨複製慢嗎?

這對於某些硬體來說非常有意義:快速 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 來自石器時代,那麼複製速度會更快。

引用自:https://serverfault.com/questions/505208