close

  很多人都是Steam的用戶,現在寬帶的帶寬普遍增多了,像200Mbps、500Mbps這樣用戶的也不少了, 可能很多網速較快的人在Steam上下載遊戲時會發現自己電腦的CPU佔用率很高,難不成下載速度快了CPU會跟不上嗎?這是有可能發生的,原因出在Steam的下載機制上。

Steam在下載_01.PNG

  Steam用一套複雜的文件下載機制。首先用戶可以給自己的遊戲建立許多個倉庫,每個倉庫中可以存放不同的文件。Steam會根據倉庫中的文件內容,形成一份清單,同時將該倉庫中的所有文件進行分組,每個組大小約為1MB,為了不讓沒買過該遊戲的用戶輕鬆獲取到遊戲文件, Steam內容系統將每組都用LZMA算法進行壓縮,並且使用一個256-bit長度的密鑰對文件塊進行了AES加密。每個倉庫都有一個獨一無二的密鑰,並且在倉庫的清單中記載有原始文件名、文件大小、文件校驗值、文件類型和文件區塊的元數據,同時還會記載每個區塊的ID、校驗碼、文件位置偏移值和壓縮前後的大小。通過這樣的設計,Steam能夠有效保障整個下載過程是高效的,並且在下載時不會有差錯。同時,對於所有Steam用戶來說,每個區塊文件都是一樣的,這也允許CDN存儲靜態的內容,而不是動態加密的。

Steam在下載_02.PNG

大概就是這樣子,把整個倉庫的文件給壓縮並加密了

  在下載一個已經發售的遊戲時,Steam是可以第一時間拿到用於解密文件的密鑰的,為了節約時間,Steam使用了邊下載邊解密的辦法,而LZMA解 壓縮(就是7-Zip用的算法之一)和AES解密都是較為吃CPU資源的,這也就是Steam下載速度越快,CPU佔用率越高的原因了——因為你同時間要解密的數據量更大了。

Steam在下載_03.PNG

在500Mbps的網絡環境下,用Steam下載遊戲大概會吃掉我這塊i7-4770K約50%的佔用率,還是很高的

  而在下載尚未發售遊戲的數據時,也就是在預載遊戲時,由於拿不到用來解密數據的Key,Steam會把下載到的數據存到*.csd文件中,在遊戲正式發售之後,就會使用拿到的密鑰進行解密和解壓縮。如果你的存儲設備速度慢,而網速較快的話,那確實不如不做預載、直接在正式發售後進行下載。

 


來源
謝謝收看

arrow
arrow
    文章標籤
    Steam下載佔用資源 Steam
    全站熱搜

    john pan 發表在 痞客邦 留言(0) 人氣()