[この記事は V8 トラックコメンテーターの Seth Thompsonによる Chromium Blog の記事 "Smarter garbage collection for smoother browsing and less memory usage" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Chrome でブラウジングするときにスムーズできびきびした操作感を確保するには、未使用のメモリを解放することが不可欠です。メモリを可能な限り迅速に回収して実行用のメインスレッドの一時停止を短縮するため、V8 JavaScript エンジンの ガベージ コレクター最適化されました。しかし、わずかな一時停止であっても不適切なタイミングで発生すると不自然な動作がもたらされ、クリック、スクロール、アニメーション フレームなどの重要なイベントがブロックされます。ガベージ コレクションをより目立たなくするため Blink のタスク スケジューラを V8(M41 以降)に統合したことにより、一時停止が短くなるのみではなく、一時停止がブラウザのアイドル時間に発生するようインテリジェントにスケジュールされます。完全に非アクティブなページ(バックグラウンド タブなど)があると、V8 ではメモリの大きなチャンクが一度に解放されます。 その結果、ブラウジング時の不自然な動作は減少し、全体的なメモリ使用率が低減します。


ガベージ コレクション タスク(赤色)をアイドル時間(青色)にスケジュールする。


スマートなガベージ コレクションを行うと遅延と途切れが減少し、3D アニメーションやゲームがスムーズに動作します。タスク スケジューラが V8 に統合されたことにより、ゲームプレイとレンダリングに対してさらに高いフレームレートが一貫してもたらされます。Chrome 41 から Chrome 46 までの間に、WebGL グラフィックのスムーズなレンダリングを計測する 3D ベンチマーク OORT Online のスコアが最大で 33% 増加しました。このスコアは、現在のデスクトップ コンピュータの最高スコア 10,000 ポイントをわずかに下回るだけです。




新しいシステムのメモリ消費量の低減は、ブラウザが数分間またはそれ以上アイドル状態になった場合、特に明白です。たとえば、Gmail タブが 2 分 30 秒の間未使用のままであると、 以前のバージョンに比較して Chrome 45 ではメモリ消費量が 最大で 45% 低減します。

よりスムーズで高速なブラウジング エクスペリエンスをユーザーに提供することに加え、これらの変更によってデベロッパーはさらに強力なアプリケーションと優れたグラフィックを使用して Chrome の限界を押し広げることが可能となります。今後の V8 の最適化にご期待ください。また、新しい V8 ブログガベージ コレクションのタイミングに関する詳細 をご覧ください。

Posted by Eiji Kitamura - Developer Relations Team