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

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] で、収集するプロファイリング データを指定します。[構成] ボタンをクリックすると、使用可能なデータソースが表示されます。

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

CPU オプション

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

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

GPU オプション

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

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

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

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

  • Renderstage スライス: アプリケーションによる GPU 使用状況の判断に役立つデータを収集します。

Vulkan のオプション

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

その他のオプション

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

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

  • バッテリー: バッテリーの統計情報を収集します。これにより、アプリの消費電力を大まかに見積もることができます。

  • デバイス上のファイルへの強制トレース: トレースデータは通常、トレースのキャプチャ中に USB 経由でストリーミングされます。これによりオーバーヘッドが最も少なく、長いトレースが可能になります。ただし、USB レイテンシが原因で問題が発生した場合やプロファイリング データが失われた場合は、このオプションを選択してトレース ファイルをデバイスに保存できます。ローカル トレース ファイルは、トレースが終了した後に AGI によってダウンロードされます。この場合、デバイスの内部ストレージにトレース ファイルを保存するのに十分な空き容量が必要です。

上級者モード

[Switch to Advanced mode] リンクをクリックすると、詳細構成モードが開始されます。このモードでは、プロファイリング オプションを格納する Pefetto トレース構成を手動で編集できます。

結果を表示して分析する

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

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