ニュース
Google、「Google Chrome」のレンダリングを改善 ~その手法をブログで解説
冗長な処理の削減と、より最適なレンダリングアルゴリズムの選択により描画時間を短縮
2017年1月31日 16:04
米Google Inc.は30日(現地時間)、公式ブログ“Chromium Blog”で、ここ数カ月の間に「Google Chrome」へ導入されたレンダリング処理の改善を明らかにした。冗長な処理の削減、より最適なレンダリングアルゴリズムの選択、システムのハードウェアの活用といった改善がレンダリングパイプラインで施された結果、ページ読み込みの高速化、スムーズな実行、消費電力の削減が実現されたという。
同ブログによると、最近施されたレンダリングパイプラインの改善の多くは、純粋な高速化ではなく、フレームごとの作業負荷を軽減に焦点が当てられているという。
たとえば、「Google Chrome」は再描画が不要な部分を描画する際、前のフレームからキャッシュをコピーしてレンダリングを高速化する。しかし、動的なページでは頻繁にHTMLタグが書き換えられるため、その分再描画が不要と判断できる部分が減り、キャッシュの活用が難しくなる。
そこで「Google Chrome」では生成された描画コマンドを追跡し、HTMLタグが書き換えられても視覚的に変更がなければ再描画が不要と判断、キャッシュを活用するようにアルゴリズムが改良された。この最適化処理により、最大で35%描画時間を短縮できたという。
また、「Google Chrome」はピクセルをある一定の規模を持った“タイル”にグループ化することでレンダリングを高速化している。しかし、カーソルが点滅する場合など、再描画が必要になる部分がタイルのごく一部に限られることも少なくない。
そのため最近の「Google Chrome」では、タイルの大部分で再描画が必要な場合は従来の方法で、タイルのごく一部のみで再描画が必要となる場合はタイル全体を全フレームからコピーしてからピクセルを更新する方法がとられている。こうして状況に応じてレンダリング方法を賢く選択することにより、タイルの再描画にかかる時間が最大で40%削減される。
さらに、こうしたレンダリングパイプラインの最適化に加え、「Google Chrome」ではより多くのレンダリングタスクをGPUで処理できるように改善が進められている。こうした改善は、SVGやHTML5によるアニメーションパフォーマンスや入力への応答、スクロールの滑らかさを向上させるのに役立つという。
窓の杜をいいね・フォローして最新記事をチェック!
Follow @madonomori