性能向上というより体感の改善
Android版Chrome、スクロールのカクつきを48%削減。Googleが改善策を解説

Googleは、2023年から2026年にかけてAndroid版Chromeにおけるスクロール時のカクつき(scroll jank)を48%削減したと発表し、その方法を詳しく説明している。
ここでいうカクつきとは、ページのスクロール中に突然引っかかったり、飛んだりする現象を指す。これは「更新されたスクロール位置を含むフレームを、デバイスが期限内に表示できなかった場合」に発生するという。Googleはこれを「優れたモバイルWeb体験を損なう最大の要因の一つ」と位置付け、2023年から改善に取り組んできた。
Android版Chromeは、入力処理、レンダリング、GPU処理が複数のプロセスをまたぐ構造となっている。これにより、一般的なAndroidアプリよりも安定性やセキュリティ、パフォーマンスは向上している一方で、わずかな遅延がそのままカクつきとして表れやすい。
さらに事態を複雑にしているのが、Chromeは入力をバッファリングせず、ハードウェアから直接受け取る仕組みである。このため、入力イベントは不規則なタイミングでChromeに届き、1回の画面リフレッシュ周期内に複数回到着することも珍しくない。
こうしたパイプラインを踏まえ、Googleは「自動化されたヒューリスティック、重点的な最適化、そして大規模なアーキテクチャ変更」を通じて、スクロール時のカクつきを減らす複数のプロジェクトを進めたという。主な取り組みは以下のとおりである。
- 入力予測(Input prediction):OSからの入力が遅れて届くことがあるため、Chromeは待ちきれない場合、自らスクロール位置を予測して描画する。これにより、入力待ちによるカクつきを抑えている。
- VizにおけるブラウザーUI制御(Browser controls in Viz):スクロール時のブラウザーUIの動きを、毎回メインスレッドで処理する方式を見直した。GPU側で直接反映できるようにしたことで、表示の乱れが起きにくくなった。なお、VizとはChromeの描画処理を一元的に担う仕組みである。
- Android入力スレッドの優先度改善(Priority of Android input threads):入力イベントがChromeへ届く前に、他の優先度の低い処理に割り込まれることがあった。そこで関連スレッドの優先度を引き上げ、入力がより速く、安定して届くよう改善した。
これらのアップデートは、単なる性能向上というよりも、ユーザーが感じる「体感品質」の改善を目指したものと言える。Androidアプリは日常的に触れる機会が多いだけに、入力処理の経路設計がユーザー体験を大きく左右することを示す好例と言えそうだ。
- Source: Google
- via: 9to5Google
