微軟新貢獻:優化Chromium滾動特性的CPU佔用問題
在宣布基於Chromium的Edge以來,微軟一直積極的為開源的Chromium瀏覽器做貢獻。微軟已經為這個開源瀏覽器引入了諸多改進和新功能新特性,並努力將經典版Edge瀏覽器的優秀特性移植到Chromium平台上,讓包括Chrome在內所有基於Chromium的瀏覽器從中受益。
在Chromium開發社區兩年前發布的帖子中,表示在瀏覽某些包含大量元素設置為“sticky”或者“fixed”屬性的頁面並執行滾動操作的時候,Chrome的性能會受到影響。理論上,position: sticky屬性允許頁面元素在整個滾動過程中一直顯示在屏幕上。例如網頁標題和右側的“回到頂部”按鈕在滾動的時候始終得到保留。
Chromium開發人員表示,經過多輪測試發現使用觸控板手勢操控CPU佔用率上漲了13%,而使用鼠標滾輪方式操作CPU最高可以上漲到100%。該錯誤已經被忽略了將近2年時間,不過Microsoft Edge團隊的一位軟件工程師已經找到了解決方案,並觀察到以下改進:
● 對Blink.MainFrame.UpdateTime的合成生命週期更新進行明顯改進(低於50%)
●在我(微軟工程師)的開發機器上提供更多的主線程框架(857到1375)。
● 平滑度指標從87%增加到94%
Windows性能分析器顯示大約22%的主線程CPU時間改進。“這是一個手動場景,我在頁面加載後按下’向下箭頭’鍵約60秒,”微軟首席軟件工程師Sam Fortiner寫道。