Google Chrome 的開發人員正在嘗試增加瀏覽器快取的儲存量,以減少由於最近新增的分割槽快取功能而導致的效能下降。
自 Chrome 85 以來,瀏覽器會建立特定網站的快取,其他網站無法與之互動。但與此同時,這也造成了一些效能上的衝擊。
Google Chrome 工程師 Josh Karlin 和 Shivani Sharma 在有關快取分割槽的文件中解釋稱,"舊的設計使瀏覽器容易受到旁道攻擊,一個站點可以透過檢查資源是否在快取中來檢測另一站點是否已載入資源。這聽起來是無害的,但它可以用來實現很多惡行,比如發現你的收件箱、通訊錄中的內容等等。"
為了防止這些攻擊,Google 在 Chrome 85 中添加了一項新功能,該功能可對瀏覽器的磁碟快取進行分割槽,以便每個站點都利用自己的快取,而其他站點無法讀取該快取。Google 對此新功能進行了測試發現,其對效能的影響不大,但在安全性方面卻影響頗大。
“使用 top-frame-site 的早期(canary/dev)結果表明,影響並沒有想象中那麼嚴重。快取命中率下降了約 4%,而且從快取載入的位元組的總體分數僅從 39.1% 下降到了 37.8%。隨著我們進入 beta 和穩定狀態,這種情況可能會發生變化,但這似乎是一個令人鼓舞的開始。”
圖片:Chrome 實驗中使用的部分原始碼
因此,Google 正在尋求透過擴大特定站點快取的大小來緩解這種情況。Sharma 在 Chrome Gerrit 帖子中表示:“現在將對快取進行分割槽,因此有必要檢視增加快取大小是否有助於透過降低 eviction rate 來抵消某些效能影響。”
Google 正計劃在 Canary、Beta 版和 Dev build 使用者中做實驗,將特定於站點的瀏覽器機會擴大到通常大小的 2 到 3 倍。這將增加快取記憶體命中率並縮短載入時間。
目前,該測試版本還沒有得到批准,但應該很快就會面向 Beta 測試人員推出。