システム プロファイリングの概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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 を使用してシステム プロファイリング データを分析する方法について説明します。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# System profiling overview\n\nWith Android GPU Inspector (AGI), you can perform system profiling that includes\na wide range of tracing options and GPU performance measurements for your\nAndroid app. In comparison to the\n[Android Studio profiling tools](/topic/performance/tracing),\nAGI combines many of those capabilities into one tool, and then provides more\nin-depth GPU coverage and analysis. The available system profiling data\nincludes the following:\n\n- App trace data including [ATrace](https://perfetto.dev/docs/data-sources/atrace) markers\n- CPU and process scheduling data\n- GPU performance info such as counter, activity, and lifecycle data\n- Trace data for Vulkan API calls\n- Memory usage statistics\n- Battery usage statistics\n\nSystem Profiler is the AGI component that manages the UI and\ninstrumentation for system profiling over multiple app frames. It is built on\ntop of the [Perfetto](https://perfetto.dev) tracing system. For\ninformation about the AGI component for profiling individual app frames, see the\n[Frame profiler](/agi/frame-trace/frame-profiler) overview.\n\nGet started\n-----------\n\nThe AGI [quickstart](/agi/start) describes how to set up AGI, capture a system\nprofile, and then open the resulting trace file. The next section describes the\nconfiguration options in more detail.\n\nProfiling options\n-----------------\n\nThis sections describes the main options that are available when you\n[profile an app](/agi/start#system-profile).\n\n### Application settings\n\nThe **Application** settings identify the Android app to run and trace during\nsystem profiling. Selecting an Android app to trace during system profiling is\noptional but recommended because without it, the resulting trace file won't\ninclude [ATrace](https://perfetto.dev/docs/data-sources/atrace)\nmarkers and GPU activity for an application.\n\n### Trace options\n\nThe **Trace Options** specify the profiling data to collect. The\n**Configure** button displays the available data sources.\n\nTo minimize the performance impact on your Android device when you profile the\nsystem, we recommend that you select fewer data sources if you set the trace\n**Duration** to over a minute. However, for traces under a minute, you can\nselect all data sources with minimal impact.\n\n#### CPU options\n\nThe **CPU** option enables the collection of CPU and\nprocess scheduling data through\n[ftrace](https://en.wikipedia.org/wiki/Ftrace). This\nallows you to see what process and thread is running on each CPU\ncore. You can also enable these options:\n\n- **Frequency and idle states**: Collects CPU core frequency and idle state change events, which allows you to inspect how the CPU is scaled up or down based on load.\n- **Scheduling chains / latency**: Collects additional thread state data about thread scheduling delays and preemption.\n- **Thread slices**: Collects ATrace markers in the process views.\n\n#### GPU options\n\nThe **GPU** options enable profiling of your app's GPU usage, such as the\ncollection of GPU frequency and memory usage data. To collect this data, you\nmust specify an application to trace in the **Application** settings. The\noptions include the following:\n\n- **Counters**: Collects GPU counter samples. This data is used to determine\n how busy the GPU is and locate bottlenecks, so we recommend that you configure\n these settings.\n\n The counters are hardware-specific. For example, the minimum frequency for\n sample collection (**Poll Rate** ) may differ based on the counter type. For\n information about supported counters, see\n [GPU performance counters](/agi/sys-trace/counters-arm).\n- **Frame Lifecycle** : Traces\n [SufaceFlinger](https://source.android.com/devices/graphics/surfaceflinger-windowmanager)\n events, which help determine how frame buffers move through your application,\n the compositor, and window manager. These events allow you to locate missed\n app frames and identify sources of latency in your rendering pipeline.\n\n- **Renderstage slices** Collects data that helps determine how your application\n is using the GPU.\n\n#### Vulkan options\n\nThe **Vulkan** options enable tracing of Vulkan API calls, which can then be\nenabled by function type. You can use this\ndata to determine the CPU overhead of Vulkan API calls. The trace records the\nduration of each function call, which is displayed within your app's thread\nslices when you analyze the data in the\n[Vulkan event track](/agi/sys-trace/system-profiler-gui#vulkan_event_track).\n\n#### Other options\n\nThe additional system profiling options include:\n\n- **Memory**: Collect essential memory usage statistics, both globally and for\n each process.\n\n- **Battery**: Collects battery statistics. This can give you a rough estimate\n of the power usage of your application.\n\n- **Force Tracing into a File on the Device**: Trace data is typically streamed\n over USB while the trace is being captured, which has the least amount of\n overhead and allows for long traces. However, if you encounter problems\n or dropped profiling data due to USB latency, you can select this option to\n save the trace file on the device, which AGI then downloads after tracing\n concludes. This requires sufficient space on your device's internal storage\n to store the trace file.\n\n#### Advanced mode\n\nThe **Switch to advanced mode** link launches advanced configuration mode, which\nallows you to manually edit the\n[Pefetto trace configuration](https://perfetto.dev/docs/concepts/config)\nthat stores your profiling options.\n\nView and analyze the results\n----------------------------\n\nWhen you open a trace file that contains system profiling data, AGI displays the\ndata in the System Profiler UI for analysis. For information\nabout viewing the data, see [View a system profile](/agi/sys-trace/system-profiler-gui).\n\nThese topics describe how to analyze system profiling data with AGI:\n\n- [Analyze frame processing times](/agi/sys-trace/long)\n- [Analyze memory efficiency](/agi/sys-trace/memory-efficiency)\n- [Analyze texture memory bandwidth usage](/agi/sys-trace/texture-memory-bw)\n- [Analyze vertex memory bandwidth usage](/agi/sys-trace/vertex-memory-bw)\n- [Analyze thread scheduling](/agi/sys-trace/threads-scheduling)"]]