RenderingNG專案實現的Chromium最佳化結果

Chromium 開發人員總結了 8 年前啟動的 RenderingNG 專案的初步成果,旨在持續努力提高 Chrome 的效能、可靠性和可擴展性。

例如,與 Chrome 94 相比,Chrome 93 中添加的優化使頁面渲染延遲減少了 8%,電池壽命延長了 0.5%。 根據 Chrome 用戶群的規模,這意味著全球每天可以節省 1400 多年的 CPU 時間。 與先前的版本相比,現代 Chrome 渲染圖形的速度提高了 150% 以上,並且在有問題的硬體上受 GPU 驅動程式崩潰影響的可能性降低了 6 倍。

在實現效能提升的實現方法中,我們注意到 GPU 端不同像素的光柵化操作的並行化以及跨不同 CPU 核心的處理器更積極的分佈(執行 JavaScript、處理頁面滾動、解碼視訊和圖像、主動渲染內容)。 主動並行化的限制因素是CPU負載的增加,這表現為溫度升高和功耗增加,因此在效能和功耗之間實現最佳平衡非常重要。 例如,當使用電池電源運行時,您可以犧牲渲染速度,但不能犧牲單獨執行緒中的滾動處理,因為使用者會注意到介面響應能力的下降。

在 RenderingNG 專案框架內實現的技術徹底改變了合成方法,並允許您自適應地使用不同的技術來優化與頁面各個部分相關的 GPU 和 CPU 上的計算,同時考慮到螢幕解析度和更新率等功能,以及系統中對高階圖形API 的支持,例如Vulkan、D3D12 和Metal。 最佳化的範例包括主動使用快取 GPU 紋理和部分網頁的渲染結果,以及渲染時僅考慮使用者可見的頁面區域(渲染部分網頁是沒有意義的)被其他內容覆蓋的頁面)。

RenderingNG 的一個重要元素也是在處理頁面不同部分時隔離效能,例如,隔離與在 iframe 中投放廣告、顯示動畫、播放音訊和視訊、滾動內容以及執行 JavaScript 相關的計算。

RenderingNG專案實現的Chromium最佳化結果

實施的優化技術:

  • Chrome 94 提供了 CompositeAfterPaint 機制,該機制可以合成網頁的單獨渲染部分,並允許您動態縮放 GPU 上的負載。 根據用戶遙測數據,新的合成系統將滾動延遲降低了 8%,用戶體驗響應能力提高了 3%,渲染速度提高了 3%,GPU 記憶體消耗降低了 3%,電池壽命延長了 0.5%。
  • GPU Raster 是一種 GPU 端光柵化引擎,於 2020 年在所有平台上推出,並將 MotionMark 基準測試平均加速了 37%,將 HTML 相關基準測試加速了 150%。 今年,GPU Raster 得到了增強,能夠使用 GPU 端加速來渲染 Canvas 元素,從而使輪廓渲染速度提高 1000%,MotionMark 1.2 基準測試速度提高 130%。
  • LayoutNG 是對頁面元素佈局演算法的徹底重新設計,旨在提高可靠性和可預測性。 該項目計劃於今年交付給用戶。
  • BlinkNG - 重構和清理 Blink 引擎,將渲染操作劃分為單獨執行的階段,以提高快取效率並簡化延遲渲染,同時考慮到視窗中物件的可見性。 這項工作預計今年完成。
  • 將捲動、動畫和圖像解碼處理程序移至單獨的執行緒。 該項目自 2011 年以來一直在開發,今年實現了將動畫 CSS 轉換和 SVG 動畫導出到單獨線程的能力。
  • VideoNG 是一個高效可靠的網頁影片播放引擎。 今年,以 4K 解析度顯示受保護內容的功能已實現。 之前新增了 HDR 支援。
  • Viz - 光柵化(OOP-R - 進程外光柵)和渲染(OOP-D - 進程外顯示合成器)的單獨進程,將瀏覽器介面的渲染與頁面內容的渲染分開。 該專案也正在開發 SkiaRenderer 進程,該進程使用特定於平台的圖形 API(Vulkan、D3D12、Metal)。 這項變更使得由於圖形驅動程式問題而導致的崩潰次數減少了 6 倍。

來源: opennet.ru

添加評論