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

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

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

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

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

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

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

適切なベースライン プロファイルの定義は必ずしも簡単ではありません。そのため、Compose にはデフォルトのプロファイルが付属しています。特別な作業を行わなくてもそのメリットを享受できる場合があります。ただし、Compose に付属しているベースライン プロファイルには、Compose ライブラリ内のコードの最適化のみが含まれています。

Macrobenchmark

最適な最適化を行うには、ベースライン プロファイルを作成 します。このプロファイルは、Macrobenchmark を使用してクリティカル ユーザー ジャーニーをカバーするアプリ用です。独自のプロファイルを定義する場合は、プロファイルをテストして、問題が解決したことを確認する必要があります。これを行うには、アプリのMacrobenchmark テストを作成し、 ベースライン プロファイルを作成、変更しながらテスト結果を確認するのが適切です。

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

参考情報