RenderingNG プロジェクトによって実装された Chromium 最適化の結果

Chromium 開発者らは、Chrome のパフォーマンス、信頼性、拡張性を向上させる継続的な作業を目的として 8 年前に立ち上げられた RenderingNG プロジェクトの最初の成果をまとめました。

たとえば、Chrome 94 と比較して Chrome 93 に追加された最適化により、ページ レンダリングの遅延が 8% 短縮され、バッテリー寿命が 0.5% 増加しました。 Chrome のユーザー ベースの規模に基づくと、これは世界全体で毎日 1400 年以上の CPU 時間を節約することになります。 以前のバージョンと比較して、最新の Chrome ではグラフィックスのレンダリングが 150% 以上高速になり、問題のあるハードウェアでの GPU ドライバーのクラッシュの影響が 6 分の XNUMX に減少しました。

パフォーマンス向上を達成するために実装された方法の中で、GPU 側でのさまざまなピクセルのラスタライズ操作の並列化と、さまざまな CPU コア間でのプロセッサのよりアクティブな分散 (JavaScript の実行、ページ スクロールの処理、ビデオと画像のデコード、プロアクティブなレンダリング) に注目しました。コンテンツ)。 アクティブな並列化の制限要因は、温度の上昇と消費電力の増加に反映される CPU の負荷の増加であるため、パフォーマンスと消費電力の最適なバランスを達成することが重要です。 たとえば、バッテリー電源で実行している場合、レンダリング速度を犠牲にすることはできますが、インターフェイスの応答性の低下がユーザーに顕著になるため、別のスレッドでのスクロール処理を犠牲にすることはできません。

RenderingNG プロジェクトのフレームワーク内に実装されたテクノロジーは、合成へのアプローチを完全に変更し、画面解像度やリフレッシュ レートなどの機能を考慮して、ページの個々の部分に関連して GPU と CPU での計算を最適化するためのさまざまなテクノロジーを適応的に使用できるようにします。 、Vulkan、D3D12、Metal などの高度なグラフィックス API のサポート システムにも存在します。 最適化の例には、GPU テクスチャのキャッシュや Web ページの一部の結果のレンダリングを積極的に使用することや、レンダリング時にユーザーに表示されるページの領域のみを考慮することが含まれます (Web ページの一部をレンダリングすることに意味はありません)。他のコンテンツでカバーされているページ)。

RenderingNG の重要な要素は、ページのさまざまな部分を処理するときのパフォーマンスを分離することです。たとえば、iframe での広告の配信、アニメーションの表示、オーディオとビデオの再生、コンテンツのスクロール、JavaScript の実行に関連する計算を分離します。

RenderingNG プロジェクトによって実装された Chromium 最適化の結果

実装された最適化手法:

  • Chrome 94 は CompositeAfterPaint メカニズムを提供します。これにより、Web ページの個別にレンダリングされた部分を合成し、GPU の負荷を動的に調整できます。 ユーザー テレメトリ データによると、新しい合成システムによりスクロールの遅延が 8% 短縮され、ユーザー エクスペリエンスの応答性が 3% 向上し、レンダリング速度が 3% 向上し、GPU メモリ消費量が 3% 削減され、バッテリー寿命が 0.5% 延長されました。
  • GPU 側のラスタライゼーション エンジンである GPU Raster は、2020 年にすべてのプラットフォームに導入され、MotionMark ベンチマークを平均 37%、HTML 関連のベンチマークを 150% 高速化しました。 今年、GPU ラスターは、GPU 側のアクセラレーションを使用して Canvas 要素をレンダリングできるように強化され、その結果、アウトラインのレンダリングが 1000% 高速になり、MotionMark 1.2 ベンチマークが 130% 高速になりました。
  • LayoutNG は、信頼性と予測可能性を高めることを目的として、ページ要素のレイアウト アルゴリズムを完全に再設計したものです。 このプロジェクトは今年中にユーザーに提供される予定です。
  • BlinkNG - Blink エンジンのリファクタリングとクリーニング。ウィンドウ内のオブジェクトの可視性を考慮して、レンダリング操作を個別に実行されるフェーズに分割してキャッシュ効率を向上させ、遅延レンダリングを簡素化します。 工事は今年中に完了する予定だ。
  • スクロール、アニメーション、および画像のデコード ハンドラーを別のスレッドに移動します。 このプロジェクトは 2011 年から開発が進められており、今年はアニメーション CSS 変換と SVG アニメーションを別のスレッドにエクスポートする機能を実現しました。
  • VideoNG は、Web ページ上でビデオを再生するための効率的で信頼性の高いエンジンです。 今年は、保護されたコンテンツを 4K 解像度で表示する機能が実装されました。 HDR サポートは以前に追加されました。
  • Viz - ラスタライズ (OOP-R - アウトオブプロセス ラスター) とレンダリング (OOP-D - アウトオブプロセス ディスプレイ コンポジター) のプロセスを分離し、ブラウザー インターフェイスのレンダリングをページ コンテンツのレンダリングから分離します。 このプロジェクトは、プラットフォーム固有のグラフィック API (Vulkan、D3D12、Metal) を使用する SkiaRenderer プロセスも開発しています。 この変更により、グラフィックス ドライバーの問題によるクラッシュの数を 6 分の XNUMX に減らすことができました。

出所: オープンネット.ru

コメントを追加します