在 Windows 10 May 2020(20H1/Version 2004)更新中,微軟引入了名為“堆記憶體(Segment Heap)”的記憶體管理機制,能將新版 Microsoft Edge 的記憶體使用率降低 27%。
不過谷歌在測試中發現,堆記憶體功能在 Windows 10 2004 上為 Chrome 帶來的記憶體改進是以增加 CPU 使用量為代價的。優化了瀏覽器的記憶體佔用,但犧牲了 CPU 使用率,Chromium 團隊為此決定在 Chrome 85 穩定版中禁用該功能。
堆記憶體(Segment Heap)是一種現代堆的實現方式,通常來說會降低整體記憶體使用量。谷歌在今年 6 月下旬宣佈,Canary 通道的 Chrome 版本(version 85.0.4182.0)已經開始支援 Segment Heap 記憶體管理機制。實驗發現,瀏覽器和網路服務實用程式程序等方面能節省數百兆記憶體。實際結果會有很大的不同,多核機上的節省幅度最大。
不過在進一步的深入測試和探索之後,Chromium 團隊發現會 Windows 的堆記憶體機制導致系統效能降低。
在版本號高於 Build 19041(Windows 10 Version 2004)的版本中使用 Segment Heap 來替代 legacy heap(應用此 commit )。然而測試發現這會導致 WebXPRT3、Speedometer2 和 JetStream2 的效能倒退。
微軟員工表示,無論是記憶體還是 CPU 的使用都會受到影響。在這種情況下,記憶體的改善伴隨著 CPU 使用率的增加,並提出了兩個方案來克服這個問題。
1)減少瀏覽器的瞬時堆分配量。這將需要在整個瀏覽器程式碼庫中進行重大改變。
2)提升 Segment Heap 本身的效能。這隻能由 Windows 團隊解決,目前正在研究方案。
Chromium 團隊成員 Bruce 在帖子中指出:" M85 已經有很多其他的最佳化,而同時部署這項變更(同時的記憶體改進和效能倒退),如何平衡變得有點困難。雖然我從實驗室測試中聽到了關於節省記憶體的令人鼓舞的事情,但我不認為我們有任何辦法讓這個啟用,直到我們在 20H1 上有明確的遙測資料和實驗室測試,這兩者都不會及時發生在 M85 上。所以,我們的計劃是在 M85 上禁用這個功能(從而給我們提供另一個遙測資料點),然後在未來重新考慮。"
稿源:cnBeta
[admin
]