システム プロファイリングの概要

Android GPU Inspector(AGI)を使用すると、Android アプリの幅広いトレース オプションと GPU パフォーマンス測定を含むシステム プロファイリングを実行できます。Android Studio プロファイリング ツールと比較して、AGI はこれらの機能の多くを 1 つのツールに統合し、より詳細な GPU カバレッジと分析を提供します。利用可能なシステム プロファイリング データには、次のものがあります。

  • ATrace マーカーを含むアプリのトレースデータ
  • CPU とプロセスのスケジューリング データ
  • カウンタ、アクティビティ、ライフサイクル データなどの GPU パフォーマンス情報
  • Vulkan API 呼び出しのトレースデータ
  • メモリ使用量の統計情報
  • バッテリー使用量の統計情報

System Profiler は、複数のアプリ フレームにわたるシステム プロファイリングの UI とインストルメンテーションを管理する AGI コンポーネントです。Perfetto トレース システム上に構築されています。個々のアプリ フレームのプロファイリングを行う AGI コンポーネントについては、 フレーム プロファイラの概要をご覧ください。

始める

AGI クイックスタートでは、AGI を設定し、システム プロファイルをキャプチャして、結果のトレース ファイルを開く方法について説明します。次のセクションでは、構成オプションについて詳しく説明します。

プロファイリング オプション

このセクションでは、アプリのプロファイリングを行う際に使用できる主なオプションについて説明します。

アプリケーション設定

[Application] 設定では、システム プロファイリング中に実行してトレースする Android アプリを指定します。システム プロファイリング中にトレースする Android アプリを選択することは 省略可能ですが、選択しないと、結果のトレース ファイルにアプリの ATrace マーカーと GPU アクティビティが含まれないため、選択することをおすすめします。

トレースのオプション

[Trace Options] では、収集するプロファイリング データを指定します。[Configure] ボタンをクリックすると、利用可能なデータソースが表示されます。

システムのプロファイリング時に Android デバイスのパフォーマンスへの影響を最小限に抑えるには、トレースの [Duration] を 1 分以上に設定する場合は、選択するデータソースを少なくすることをおすすめします。ただし、トレースが 1 分未満の場合は、すべてのデータソースを選択しても影響は最小限に抑えられます。

CPU オプション

[CPU] オプションを使用すると、ftrace を介して CPU と プロセスのスケジューリング データを収集できます。 これにより、各 CPU コアで実行されているプロセスとスレッドを確認できます。次のオプションを有効にすることもできます。

  • Frequency and idle states: CPU コアの周波数とアイドル状態の変更イベントを収集します。これにより、負荷に基づいて CPU がどのようにスケールアップまたはスケールダウンされるかを確認できます。
  • Scheduling chains / latency: スレッドのスケジューリングの遅延とプリエンプションに関する追加のスレッド状態データを収集します。
  • Thread slices: プロセスビューで ATrace マーカーを収集します。

GPU オプション

[GPU] オプションを使用すると、GPU の周波数やメモリ使用量のデータの収集など、アプリの GPU 使用量のプロファイリングを有効にできます。このデータを収集するには、[Application] 設定でトレースするアプリを指定する必要があります。オプションは次のとおりです。

  • カウンタ: GPU カウンタのサンプルを収集します。このデータは、GPU のビジー状態を判断してボトルネックを見つけるために使用されます。そのため、これらの設定を構成することをおすすめします。

    カウンタはハードウェア固有です。たとえば、サンプル収集の最小頻度(Poll Rate )は、カウンタのタイプによって異なる場合があります。サポートされているカウンタについては、 GPU パフォーマンス カウンタをご覧ください。

  • Frame Lifecycle: SufaceFlinger イベントをトレースします。これにより、フレーム バッファがアプリ、コンポジタ、ウィンドウ マネージャーをどのように移動するかを判断できます。これらのイベントを使用すると、アプリのフレームの欠落を見つけて、レンダリング パイプラインのレイテンシの原因を特定できます。

  • Renderstage slices アプリが GPU をどのように使用しているかを判断するのに役立つデータを収集します。

Vulkan オプション

[Vulkan] オプションを使用すると、Vulkan API 呼び出しのトレースを有効にできます。これは、関数タイプで有効にできます。このデータを使用して、Vulkan API 呼び出しの CPU オーバーヘッドを特定できます。トレースでは、各関数呼び出しの期間が記録されます。これは、Vulkan イベント トラックでデータを分析するときに、アプリのスレッド スライス内に表示されます。

その他のオプション

その他のシステム プロファイリング オプションは次のとおりです。

  • メモリ: グローバルと プロセスごとの両方で、重要なメモリ使用量の統計情報を収集します。

  • Battery: バッテリーの統計情報を収集します。これにより、アプリの電力使用量を概算できます。

  • Force Tracing into a File on the Device: トレースデータは通常、トレースのキャプチャ中に USB 経由でストリーミングされます。これにより、オーバーヘッドが最小限に抑えられ、長時間のトレースが可能になります。ただし、USB レイテンシが原因で問題が発生したり、プロファイリング データがドロップしたりする場合は、このオプションを選択してトレースファイルをデバイスに保存できます。AGI は、トレースが完了した後にトレースファイルをダウンロードします。これには、トレース ファイルを保存するために、デバイスの内部ストレージに十分な空き容量が必要です。

詳細モード

[Switch to advanced mode] リンクをクリックすると、詳細構成モードが起動します。このモードでは、プロファイリング オプションを保存するPefetto トレース構成を手動で編集できます。

結果を表示して分析する

システム プロファイリング データを含むトレース ファイルを開くと、AGI は分析のために System Profiler UI にデータを表示します。データの表示については、システム プロファイルを表示するをご覧ください。

次のトピックでは、AGI を使用してシステム プロファイリング データを分析する方法について説明します。