Jetpack Compose のパフォーマンス

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

Jetpack Compose のベンチマーク

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

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

Compose 1.9.0 以降、Compose と View のジャンク率は同じ
Compose 1.9.0 以降、Compose とビューのジャンク率は同じです。

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

主なコンセプト

Compose のパフォーマンスに関する主なコンセプトをいくつか紹介します。

  • フェーズ: Compose が UI を更新する方法を最適化するには、コンポジション、レイアウト、描画のフェーズを理解することが重要です。
  • ベースライン プロファイル: 重要なコードをプリコンパイルすることで、アプリの起動を高速化し、インタラクションをスムーズにします。
  • 安定性: Compose が再コンポーズ中にパラメータを比較する方法を理解することで、コストのかかる等価性チェックを導入することなく、不要な作業をスキップできます。

アプリを適切に構成する

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

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

ツール

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

ベスト プラクティス

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

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

視聴回数

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

参考情報