當前位置: 華文問答 > 遊戲

為什麽 Steam 刪除 80G 的遊戲只用了一秒?

2019-11-26遊戲

額。。。電腦專業。

其他答案都關註在「刪除檔只是刪除索引」,是的,這沒錯,可我們平時手動刪檔也是這樣的,這跟STEAM為什麽更快沒有關系。

80G數據,如果是一個檔,你手動刪除也是秒刪,硬碟讀寫燈都不帶亮的。

但是一般遊戲都是一大堆檔,數據也不連續,有一大堆索引要去廢棄,一秒是很難做到的。

我覺得steam是做了個異步刪除,僅此而已。

對了,想起來steam在安裝遊戲時有個空間預分配,我懷疑這biaozi是申請了一整塊連續空間,這樣讀寫都會更快,索引大概也在索引磁區連續,這樣也是快的因素。

11.26 感謝評論區的同學們。

有人提到了steam做了「固實」化儲存,我找不到直接證據,因為這些檔看起來是雜湊的,最多是有些遊戲把資原始檔做了打包(你可以看到好幾個GB的 .res 或者類似檔),這個跟steam沒有關系。

關於下載前的預分配為什麽慢,倒是有了點進展,其實是把遊戲的所有檔展開並建立空間了,檔越是雜亂,肯定越慢,想象一下瞬間建立1萬個帶大小的檔。。。

這是一個相關答案:Steam 的下載原理是怎樣的? - komm的回答 - 知乎 https://www. zhihu.com/question/3465 50500/answer/835306491

下圖是下載情況,可以看出所有檔被展開建立了。一個4GB的遊戲, 在800MB的安裝數據下載完成前 ,4GB空間全部份配,並且 內部所有檔都按它該有的大小 建立了。下載完成(解壓並寫真實數據完成)後,這些檔被從downloading資料夾移動到common資料夾下面,就算完成了。

那麽問題來了,為什麽刪除會那麽快呢,由於我這個硬碟本身比較快,這點東西也秒刪了,我來不及判斷是否是異步刪除,現在問題回到了原點。

我甚至懷疑steam裏面刪除真的比我手動刪這個資料夾要快嗎? ??驗證這一點,需要找個慢速機械硬碟+下載80G的遊戲(傑洛特高畫質版?給TA愛?)去。。。