在 Windows 10 May 2020(20H1/Version 2004)功能更新中,微軟引入了名為 Segment Heap 的內(nèi)存管理機(jī)制,能將基于 Chromium 的 Edge 瀏覽器內(nèi)存使用率降低 27%。不過(guò)內(nèi)存使用的改進(jìn)是犧牲 CPU 使用率來(lái)?yè)Q取的,因此 Chromium 團(tuán)隊(duì)宣布在 Chrome 85 穩(wěn)定版中禁用該功能。
Segment Heap 是一種現(xiàn)代堆的實(shí)現(xiàn)方式,一般會(huì)降低整體內(nèi)存使用量。谷歌在今年 6 月下旬宣布,Canary 通道的 Chrome 版本(version 85.0.4182.0)已經(jīng)開始支持 Segment Heap 內(nèi)存管理機(jī)制。實(shí)驗(yàn)發(fā)現(xiàn),瀏覽器和網(wǎng)絡(luò)服務(wù)實(shí)用程序進(jìn)程等方面能節(jié)省數(shù)百兆內(nèi)存。實(shí)際結(jié)果會(huì)有很大的不同,多核機(jī)上的節(jié)省幅度最大。
不過(guò)在進(jìn)一步的深入探索之后,發(fā)現(xiàn)會(huì)導(dǎo)致“WindowsSegment Heap 的性能回歸”:
部署 https://chromium-review.googlesource.com/c/chromium/src/+/2163163 提議,在版本號(hào)高于 Build 19041(Windows 10 Version 2004)的版本中使用 Segment Heap 來(lái)替代 legacy heap。不過(guò)測(cè)試發(fā)現(xiàn)這會(huì)導(dǎo)致 WebXPRT3、Speedometer2 和 JetStream2 的性能倒退。
微軟員工表示,無(wú)論是內(nèi)存還是CPU的使用都會(huì)受到影響。在這種情況下,內(nèi)存的改善伴隨著CPU使用率的增加,并提出了兩個(gè)方案來(lái)克服這個(gè)問題。
1)減少瀏覽器的瞬時(shí)堆分配量。這將需要在整個(gè)瀏覽器代碼庫(kù)中進(jìn)行重大改變。
2)提高Segment堆本身的性能。這只能由Windows團(tuán)隊(duì)解決,我們正在調(diào)查我們的方案。
Chromium 的 bruce 在該帖子中中指出:" M85 已經(jīng)有很多其他的優(yōu)化,而同時(shí)部署這個(gè)變化(同時(shí)的改善內(nèi)存和性能倒退),如何平衡變得有點(diǎn)困難。雖然我從實(shí)驗(yàn)室測(cè)試中聽到了關(guān)于節(jié)省內(nèi)存的令人鼓舞的事情,但我不認(rèn)為我們有任何辦法讓這個(gè)啟用,直到我們?cè)?20H1 上有明確的遙測(cè)數(shù)據(jù)和實(shí)驗(yàn)室測(cè)試,這兩者都不會(huì)及時(shí)發(fā)生在 M85 上。所以,我們的計(jì)劃是在 M85 上禁用這個(gè)功能(從而給我們提供另一個(gè)遙測(cè)數(shù)據(jù)點(diǎn)),然后在未來(lái)重新考慮。"
來(lái)源:cnBeta.COM