アプリ パフォーマンスのプロファイリング

アプリの応答が遅い場合や、アニメーションの再生品質が悪い場合、フリーズする場合、多くの電力を消費している場合は、アプリのパフォーマンスが低下していると見なされます。パフォーマンスの問題を解決するには、CPU、メモリ、グラフィック、ネットワーク、デバイスのバッテリーなどのリソースをアプリが効率的に使用できていない場所を特定する必要があります。これらの問題を見つけて修正するには、このトピックで説明するプロファイリングとベンチマークのためのツールや手法を使用します。

Android Studio には、潜在的な問題を見つけて可視化できる複数のプロファイリング ツールが用意されています。

  • CPU Profiler: ランタイム パフォーマンスの問題を追跡できるツールです。
  • Memory Profiler: メモリ割り当てを追跡できるツールです。
  • Network Profiler: ネットワーク トラフィックの使用状況を監視できるツールです。
  • Energy Profiler: 電池の消耗に影響するエネルギー使用量を追跡できるツールです。
これらのツールの使用方法については、Android Studio Profiler のページをご覧ください。

Jetpack Benchmark ライブラリを使用すると、アプリにおける重要な各種オペレーションを測定できます。

  • Macrobenchmark: 重要なパフォーマンスのユースケース(UI アニメーションやスクロールなどのアクションによってトリガーされるアプリの起動や再描画)を測定します。
  • Benchmark: 特定の関数の CPU コストを測定します。
これらのライブラリについて詳しくは、アプリのベンチマーク測定ページをご覧ください。

パフォーマンスの問題にはさまざまな原因が考えられるため、パフォーマンス分析に不慣れな場合はどこから手を付けたらよいかわからないかもしれません。パフォーマンスを測定する方法と、これらの手法を使用して特定の問題を解決する方法については、パフォーマンスの測定をご覧ください。

注: アプリのプロファイリング中は、Instant Run 機能を無効にしてください。Instant Run を使用すると、パフォーマンスにわずかに影響が生じ、メソッドを更新する際に多少の影響が生じます。その結果、パフォーマンス プロファイリング ツールで取得する情報が影響を受ける場合があります。また、機能の使用中に生成されるスタブメソッドにより、スタック トレースが複雑になることもあります。