Jetpack Compose のパフォーマンス

Jetpack Compose は、初期設定の状態で優れたパフォーマンスを実現します。ベスト プラクティスを使用してアプリを構成し、よくある落とし穴を回避して Compose アプリケーションのパフォーマンスを最適化します。

Jetpack Compose のベンチマーク

Jetpack Compose のパフォーマンスを View と比較するために、ヒーロー ベンチマーク(アプリのコールド スタートや、画像を含むリストやグリッドのスクロールなど、重要な実際のユーザー ジャーニーに焦点を当てたベンチマーク)を使用します。これらのベンチマークは、オープンソースの Pokedex アプリを使用して実施し、その ViewsCompose の実装を比較します。

これらのベンチマークは、Compose 1.9 以降では、スクロール時のジャンクに関する Views のパフォーマンスに匹敵することを示しています。

Compose 1.9.0 以降、Compose と View のジャンク率が同じになりました
Compose 1.9.0 以降、Compose と Views のジャンク率は同じです。

その他の指標や手法については、ヒーロー ベンチマークをご覧ください。

主なコンセプト

Compose のパフォーマンスに関する主なコンセプトは次のとおりです。

  • フェーズ: コンポジション、レイアウト、描画の各フェーズを理解することは、Compose が UI を更新する方法を最適化するうえで重要です。
  • ベースライン プロファイル: これらのプロファイルは、重要なコードをプリコンパイルするため、アプリの起動が速くなり、操作がスムーズになります。
  • 安定性: アプリの安定性を高め、不要な再コンポーズをより効率的にスキップして、パフォーマンスを改善します。

アプリを適切に構成する

アプリのパフォーマンスが低い場合は、構成に問題があることが考えられます。最初のステップとして、次の構成オプションを確認することをおすすめします。

  • R8 を使用してリリースモードでビルドする: リリースモードでアプリを実行してみてください。デバッグモードは多くの問題を見つけるために役立ちますが、パフォーマンスに多大なコストがかかるため、他の問題を特定することが困難になる場合があります。また、R8 コンパイラで最適化と圧縮を有効にして、パフォーマンスが高く効率的なリリースビルドを確保する必要があります。
  • ベースライン プロファイルを使用する: ベースライン プロファイルは、クリティカル ユーザー ジャーニーのコードを事前コンパイルすることで、パフォーマンスを向上させます。Compose にはデフォルトのプロファイルが含まれていますが、アプリ固有のプロファイルも作成することをおすすめします。Android のパフォーマンスに関する一般的なドキュメントでベースライン プロファイルの詳細を確認する

ツール

Compose アプリのパフォーマンスの測定と分析に役立つ一連のツールについて理解します。

ベスト プラクティス

Compose でアプリを開発する際は、以下のベスト プラクティスを念頭に置いてください。

詳しくは、ベスト プラクティス ガイドをご覧ください。

視聴回数

Compose ではなくビューを使用している場合は、専用のレイアウトのパフォーマンスを改善するガイドをご覧ください。

参考情報