Google Chromeは2008年9月2日に誕生し、10年たった2018年の段階で約60%のシェアを誇るなど人気の高いブラウザです。そのChromeは「速度」「セキュリティ」「安定性」「簡潔性」の4つの基本原則に基づいて開発が進められています。基本原則の一つである「速度」がこの10年間でどれほど速くなったのかについて開発者がブログに書き残しています。

Chromium Blog: 10 years of Speed in Chrome

https://blog.chromium.org/2018/09/10-years-of-speed-in-chrome_11.html

記念すべき10周年を迎えた時のバージョン69のパッチノートは以下の記事の通りです。

10周年を迎えたGoogle Chromeが見た目から新しくなったバージョン69安定版をリリース - GIGAZINE



年々WebページにおけるJavaScriptの使用量は増加しつつありますが、そのJavaScriptはChromeに組み込まれているV8エンジンで処理されています。2017年にはインタプリタとコンパイラを更新することで5%〜10%動作が速くなりました。また、スクリプトのストリーミングという技術でページの読み込みを最大10%速く、バックグラウンドコンパイルという技術で最大20%コンパイル時間を短縮したとのこと。

また、ガベージコレクタを改善するOrinocoプロジェクトによってコンカレントガベージコレクションという技術が導入され、より少ない時間でガベージコレクションを行えるようになり、スクロールが一瞬止まるというような「jank」動作を減少させることができたとのこと。2018年には高速化の指標を改め、ReactやVue、Angularなどのフレームワークの動作速度を向上させるようにしたそうです。また2016年にはブラウザ上でバイナリコードを実行できるようにするWebAssemblyも実装されています。

上記のような努力によって、V8エンジンのベンチマークは10年間で3倍以上になりました。



また、GoogleはChromeの速度を改善するためにHTTP/2プロトコルやQUICプロトコルの策定も推し進めてきました。HTTP/2は2015年に正式な仕様として承認されています。またQUICプロトコルを使用することでYouTubeのムービーを視聴している際のリバッファを30%削減できたとのこと。

レンダリングパイプラインも改善されています。ブラウザのレンダリングの仕組みについては以下のページが詳しいです。

ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE



Chromeは60fpsで画面を動作させるために、「JavaScriptの実行」「スタイルの適用」「レイアウトの計算」「描画」という全てのレンダリング工程を合計16msで行っています。2015年にはユーザーの体験を損ねないようなパフォーマンスモデル「RAIL」が導入されているとのこと。



ほかにも、Chrome 63からChrome 66にかけてレンダリングを行うプロセスのメモリ消費量が20%〜30%削減されたり、V8エンジンのインタプリタとコンパイラの更新によってV8エンジンのメモリ使用量を5%〜10%削減するなどの努力が行われているそうです。

さらに実際にWebサイトを構築するWeb開発者がサイトのパフォーマンスを改善しやすいように、「Lighthouse」という解析ツールを開発しています。



Lighthouseを使用することで、Web開発者は自分のサイトのパフォーマンスを向上させるには何をすればよいかが分かるようになります。実際に使ってみた様子は以下の記事の通りです。

Webページの読み込み速度やアクセシビリティを自動でチェックしてくれるChrome拡張「Lighthouse」 - GIGAZINE



また、Chrome 40ではオフラインキャッシュやプッシュ通知を利用できるようにする「サービスワーカー」が導入されました。Google検索ではこのサービスワーカーとナビゲーションのプリロードを使用することでページの読み込み時間が半分になったとのこと。



ほかにも、通信の際にGoogleのサーバーで圧縮をかけることでデータ消費量を最大92%削減するChrome拡張機能「Data Saver」をリリースするなど、ネットワークの速度が遅い人用の機能にも注力しているとのことです。