ドキュメント

Unity Engine

Unity Engine

コードへのプロファイリング情報の追加の概要

Use profiler markers and counters to collect specific data about your application.
読み終わるまでの所要時間 9 分最終更新 1ヶ月前

デフォルトでは、Profiler ウィンドウ には Unity のネイティブコードに関する情報が表示されます。ビルトインプロファイラーマーカー を使用して、収集したパフォーマンスデータが整理および分割されます。
独自のコードにプロファイラーマーカーを追加して、これらの領域で使用されたタイミングを
ProfilerMarker
API
で Profiler ウィンドウに表示できます。
コードにプロファイラーカウンターを追加して、アプリケーションの指標データを収集したり、カスタムプロファイラーモジュール を使用してそのデータを表示したりすることもできます。これは、アプリケーションのパフォーマンスの変化を追跡する場合に役立ちます。コードにプロファイラーカウンターを追加すると、カウンターからの情報を Unity のビルトインカウンターやインストルメンテーションのデータと組み合わせて使用できるため、パフォーマンス問題の調査が迅速化されます。
コードにメタデータ付きのカウンターとマーカーを追加するには、Unity Profiling Core パッケージを使用する必要があります。
**重要:**Unity Profiling Core パッケージはコアパッケージであるため、Package Manager UI では検出できません。パッケージをインストールするには、
com.unity.profiling.core
という 名前を使って追加 します。このリンクから インストールすることもできます。

プロファイラーマーカー

ProfilerMarker
API
を使用してリソース負荷の高いスクリプトコードブロックをマークアップし、Unity プロファイラーで表示したり、Unity Profiling Core パッケージの
ProfilerMarker<TP1>
API
を使用して、生成する各サンプルに メタデータを追加 したりできます。
ビルトイン Unity プロファイラーはすべてのメソッド呼び出しをプロファイルするわけではないため、これは役に立つ場合があります。詳細プロファイリングを使用 することもできますが、この場合、大きなオーバーヘッドが発生し、アプリケーションの実行速度が大幅に低下し、結果が歪みます。
ProfilerMarker
を使用すると、コードのマークアップがより効率的になります。
ProfilerMarker
は名前付きプロファイラーハンドルを表し、コードをプロファイリングする最も効率的な方法です。アプリケーションの任意の C# コードで使用できます。
プロファイラーマーカーは、Unity が開発以外のビルドにデプロイするときにオーバーヘッドを発生させないため、好きなだけサンプルをマークアップできます。
Unity は
Begin
メソッドと
End
メソッドを
ConditionalAttribute
でマークし、条件付きでコンパイルします。そのため、開発以外のビルドでの実行オーバーヘッドはゼロです。
Auto
メソッドは開発以外のビルドのコンパイルで完全に除外されるわけではありませんが、null を返すように条件付きでコンパイルされるため、オーバーヘッドはごくわずかです。プロファイラーマーカーのフィールドはリリースビルドに存在し、その
IntPtr
と同等のメモリ (8 バイト) を使用します。
また、
ProfilerRecorder
API はパフォーマンスデータの取得にプロファイラーマーカーを使用します。Unity エディターと開発プレイヤーでの開発中に、この API を使用してコードのさまざまな部分のパフォーマンスの概要を取得し、パフォーマンスの問題を特定できます。

プロファイラーカウンター

Unity プロファイラーにカスタム指標を表示するには、Unity Profiling Core パッケージの
ProfilerCounter
API を使用します。プロファイラーは
ProfilerCounter
または
ProfilerCounterValue
のデータを表示できます。
Unity は、プロファイラーカウンターを、カウンターがプロファイルする作業の種類、例えばレンダリング、スクリプト、アニメーションに基づいてカテゴリにグループ化します。カスタムのプロファイラーカウンターは、Unity のプロファイリングカテゴリのいずれかに割り当てることができます。使用可能なプロファイラーカテゴリの完全なリストについては、
ProfilerCategory
を参照してください。
ProfilerCounter
または
ProfilerCounterValue
API を使用して、アプリケーションの指標を追跡し、Unity プロファイラーやその他のコードで表示できます。Asset Store パッケージ開発者は、コードにプロファイラーカウンターを追加して、他の開発者がシステムの重要なパフォーマンス特性を理解するのを助け、この情報を最適化やバジェットのツールに使用できるようにすることができます。
以下の図は、プロファイラーカウンターのデータフローの概要を示しています。

プロファイラーカウンターのフロー。

ProfilerRecorder
API はアプリケーションコードのプロファイラーカウンターデータを取得し、
RawFrameDataView
API または
HierarchyFrameDataView
API はエディターコードのプロファイラーカウンターデータを取得します。このカウンターデータは、モジュールエディターでカスタムプロファイラーモジュールを設定 することで、Profiler ウィンドウで表示できます。
ProfilerCounter
と
ProfilerCounterValue
は以下の型をサポートしています。
  • int
  • long
  • 浮動小数点
  • double

追加リソース