Android Weekly Topics

Androidを高速化する新たな最適化技術「AutoFDO」とは

3月10日、GoogleはAndroidのパフォーマンス向上を狙った技術「AutoFDO ⁠Automatic Feedback-Directed Optimization⁠⁠」をAndroid OSのカーネルに導入したことを明らかにしました。

Android Developers Blog: Boosting Android Performance: Introducing AutoFDO for the Kernel

3月第2週に配信された「March 2026 Pixel Drop」では、ユーザとってわかりやすいものでしたが、OSの根幹を支えるリソース管理に大きな進展が見られました。今週は、OSの実行効率を上げる「AutoFDO」と、強化された次世代のメモリ管理技術について取り上げます。

実績に基づくプロファイルによる最適化

GoogleがAndroid 16のカーネルに本格導入したAutoFDOは、バイナリの最適化プロセスを「開発者の推測」から「ユーザの実績」へとシフトさせる技術です。

従来のコンパイル時の最適化は、一般的なルールや推測に基づいてコードの最適化を行なっていました。しかし、実際は、ユーザがどのようにデバイスを操作するかは千差万別です。

AutoFDOの最適化は、ARMプロセッサのトレース機能を活用し、デバイス上での実行データを軽量にサンプリングします。サンプリングは、人気上位100種類のアプリを使ってプロファイリングが行われており、これから得られた結果をコンパイラにフィードバックすることで、頻繁に実行されるコード(ホットパス)を特定し、インライン展開や命令の再配置を自動で行います。

パフォーマンスと「省電力」を同時に達成する技術

AutoFDOの真価は、処理速度の向上と消費電力の低減を同時に実現する点です。Googleが公開したPixel 9/10シリーズを用いた検証データによれば、以下のような改善が確認されています。

  • アプリ起動速度の向上:コールドスタート時の速度が平均で約4.8%向上
  • システム起動の高速化: OSのブートプロセスに必要な時間が約1.3%短縮

キャッシュ効率と分岐予測の最適化

CPUのキャッシュミスが発生すると、電力消費の大きいメインメモリへアクセスする必要があります。AutoFDOは、ホットパスを物理的に近づけて配置するため、L1/L2命令キャッシュのヒット率が向上します。さらに、プロセッサの「投機的実行」における分岐予測の精度が高まることで、予測が外れた際の「計算のやり直し」による無駄な電力ロスを最小限に抑えています。

さらに洗練されたメモリ管理

AutoFDOがコードの実行効率を高める一方で、Android 16では「物理メモリをいかに賢く使うか」という点でも進化を遂げています。

Android 16では、Android 13から段階的に導入されてきた「MGLRU」がさらに洗練されました。従来のアルゴリズムはメモリを「最近使ったか、否か」の二択に近い形で管理していましたが、MGLRUはメモリページを「世代」で管理して、アプリからメモリを要求された時は、古い世代のページから再利用することで、メモリ割り当てのパフォーマンスを向上させています。

Googleの報告によると、MGLRUの最適化により以下の効果が得られています。

  • 低メモリ発生時のCPU使用率:ページ回収に伴うオーバーヘッドが削減
  • アプリの強制終了の減少:メモリ不足を理由としたバックグラウンドアプリの終了が改善
  • UIの引っ掛かりの低減:メモリ回収時のシステム負荷が下がることで、描画の遅延を改善

これにより、バックグラウンドに回ったアプリのメモリを回収する際、OSは「本当に今すぐ捨てるべきページ」を正確に判断できるので、この結果として、アプリを再度開いた際の「再読み込み」が減り、マルチタスクの快適性が飛躍的に向上します。

次の体験を支える基礎体力の向上

Androidが目に見える新機能の追加やAIだけでなく、OSとしての「基礎体力」の向上に注力していることを明確に示しました。

こうした地道な最適化が積み重なることで、ユーザは特別意識することなく「より速く、より長く、より多機能な」デバイスが享受できるようになります。ハードウェアのスペック競争が限界を迎えつつある中で、こうした改善が次世代のユーザ体験を決定づける鍵となるかもしれません。

今週は、このあたりで、また来週。

おすすめ記事

記事・ニュース一覧