ベースライン プロファイルを使用する

ベースライン プロファイルにより、含まれるコードパスに対して解釈とジャストインタイム(JIT)コンパイルの手順を行う必要がなくなるため、初回起動からのコード実行速度が約 30% 向上します。アプリまたはライブラリにベースライン プロファイルを配布することで、Android ランタイム(ART)が事前(AOT)コンパイルによって含まれるコードパスを最適化し、すべての新規アプリのインストールとすべてのアプリ アップデートでパフォーマンスが向上します。このプロファイルに基づく最適化(PGO)を使用すると、エンドユーザーの初回起動時から、起動の最適化、インタラクション ジャンクの削減、全体的なランタイム パフォーマンスの向上が可能になります。

Compose のパフォーマンスに関する考慮事項

Compose は、Android プラットフォームの一部としてではなく、ライブラリとして配布されます。このアプローチにより、Compose チームは Compose を頻繁に更新し、幅広い Android バージョンをサポートできます。ただし、Compose をライブラリとして配布するとコストがかかります。

Android プラットフォーム コードはすでにコンパイルされ、デバイスにインストールされています。ただし、ライブラリは、アプリの起動時に JIT を読み込み、必要に応じて解釈する必要があります。これにより、アプリの起動時やライブラリ機能を初めて使用するときに、アプリの速度が低下する可能性があります。

ベースライン プロファイルのメリット

ベースライン プロファイルを定義すると、パフォーマンスを向上させることができます。これらのプロファイルは、クリティカル ユーザー ジャーニーに必要なクラスとメソッドを定義し、アプリの APK または AAB とともに配布されます。アプリのインストール中に、ART はこの重要なコードを AOT コンパイルし、アプリの起動時に使用できるようにします。

ベースライン プロファイルの定義は必ずしも簡単とは限りません。そのため、Compose にはベースライン プロファイルがデフォルトで付属しています。何もしなくても、このメリットが得られます。ただし、Compose に付属のベースライン プロファイルには、Compose ライブラリ内のコードの最適化のみが含まれています。

Macrobenchmark

最適な最適化を行うには、Macrobenchmark を使用してクリティカル ユーザー ジャーニーをカバーするアプリのベースライン プロファイルを作成します。独自のプロファイルを定義する場合は、プロファイルをテストして、有効性を検証する必要があります。そのためには、アプリの Macrobenchmark テストを作成し、ベースライン プロファイルの作成と変更を行うときにテスト結果を確認することをおすすめします。

Compose UI の Macrobenchmark テストを作成する方法の例については、Macrobenchmark Compose のサンプルをご覧ください。

その他のリソース