Chrome は誕生当初より、効率よく動作するように設計されています。効率がよいとは、単にページをできる限り高速に読み込むことだけでなく、できる限り少ないリソースを使うことを指します。今回の速さと好奇心の投稿では、Mac のバッテリー駆動時間をできる限り延ばすために行った Chrome の改善に注目します。この改善により、ブラウズや動画の視聴をこれまで以上に長く楽しめるようになっています。
Chrome の最新リリースでは、内部的にたくさんの最適化をし、MacBook の 1 度の充電でできることを増やしています。私たちのテストによれば、MacBook Pro(13 インチ、M2、2022)で 17 時間のブラウズまたは 18 時間の YouTube 視聴が可能です。Chrome の省エネモードをオンにすると、バッテリーでブラウズできる時間がさらに 30 分延びます(1)。私たちは、最新のハードウェアを使っている方だけでなく、すべてのユーザーのことを深く考えています。そのため、古いモデルでもパフォーマンスが向上します。
以下では、行った変更のいくつかについて詳しく説明します。
iframe の微調整
iframe には数秒しか存在しないものが多いことがわかりました。そこで、最近作成された iframe について、ガベージ コレクションとメモリ圧縮ヒューリスティックスを微調整しました。その結果、短期的なメモリ使用量を抑えることができ、消費電力が減少しました(長期的なメモリ使用量には影響しません)。
タイマーの調整
Javascript のタイマーは、ウェブの黎明期に導入されたものです。その後、ウェブ デベロッパーは、さらに効率的で同じ結果(またはそれよりも優れた結果)を実現できる API を利用できるようになっています。それでも、Javascript のタイマーはウェブページの電力消費の大部分を占めています。そこで、Chrome でのタイマーの呼び出し方法を調整し、CPU の復帰回数を少なくしました。
同様に、必要なくなってキャンセルできるようになった内部タイマーを特定することで、タイマーが CPU を復帰させる回数を減らしました。
データ構造の効率化
同じキーで頻繁にアクセスされるデータ構造があることがわかったため、そのアクセス パターンを最適化しました。
不要な再描画の回避
ボットを使って実際のサイトを開き、ドキュメント オブジェクト モデル(DOM)の変化パターンのうち、画面上のピクセルに影響しないものを特定しました。こういったパターンを早い段階で検出し、不要なスタイル、レイアウト、描画、ラスタライズ、GPU の操作を省略するように Chrome を変更しました。Chrome UI の変化についても同じ最適化を行っています。
私たちの作業に終わりはありません。2023 年以降は、オープンソース ベンチマーク スイートによって、幅広い開発コミュニティの力を借りて Chrome の電力消費を改善できるようになります。
___
1 2023 年 2 月に MacBook Pro(13 インチ、M2、2022、8 GB の RAM を搭載し MacOS Ventura 13.2.1 を実行)と Chrome 110.0.5481.100 を使ってテストを実施し、Google の オープンソース ベンチマーク スイートで測定したもの。
Posted by
Eiji Kitamura - Developer Relations Team