コードへのプロファイリング情報の追加の概要
Use profiler markers and counters to collect specific data about your application.
読み終わるまでの所要時間 9 分最終更新 1ヶ月前
デフォルトでは、Profiler ウィンドウ には Unity のネイティブコードに関する情報が表示されます。ビルトインプロファイラーマーカー を使用して、収集したパフォーマンスデータが整理および分割されます。
独自のコードにプロファイラーマーカーを追加して、これらの領域で使用されたタイミングを API で Profiler ウィンドウに表示できます。
ProfilerMarkerコードにプロファイラーカウンターを追加して、アプリケーションの指標データを収集したり、カスタムプロファイラーモジュール を使用してそのデータを表示したりすることもできます。これは、アプリケーションのパフォーマンスの変化を追跡する場合に役立ちます。コードにプロファイラーカウンターを追加すると、カウンターからの情報を Unity のビルトインカウンターやインストルメンテーションのデータと組み合わせて使用できるため、パフォーマンス問題の調査が迅速化されます。
コードにメタデータ付きのカウンターとマーカーを追加するには、Unity Profiling Core パッケージを使用する必要があります。
**重要:**Unity Profiling Core パッケージはコアパッケージであるため、Package Manager UI では検出できません。パッケージをインストールするには、 という 名前を使って追加 します。このリンクから インストールすることもできます。
com.unity.profiling.coreプロファイラーマーカー
ProfilerMarkerProfilerMarker<TP1>ビルトイン Unity プロファイラーはすべてのメソッド呼び出しをプロファイルするわけではないため、これは役に立つ場合があります。詳細プロファイリングを使用 することもできますが、この場合、大きなオーバーヘッドが発生し、アプリケーションの実行速度が大幅に低下し、結果が歪みます。 を使用すると、コードのマークアップがより効率的になります。
ProfilerMarkerProfilerMarkerプロファイラーマーカーは、Unity が開発以外のビルドにデプロイするときにオーバーヘッドを発生させないため、好きなだけサンプルをマークアップできます。
Unity は メソッドと メソッドを でマークし、条件付きでコンパイルします。そのため、開発以外のビルドでの実行オーバーヘッドはゼロです。 メソッドは開発以外のビルドのコンパイルで完全に除外されるわけではありませんが、null を返すように条件付きでコンパイルされるため、オーバーヘッドはごくわずかです。プロファイラーマーカーのフィールドはリリースビルドに存在し、その と同等のメモリ (8 バイト) を使用します。
BeginEndConditionalAttributeAutoIntPtrまた、 API はパフォーマンスデータの取得にプロファイラーマーカーを使用します。Unity エディターと開発プレイヤーでの開発中に、この API を使用してコードのさまざまな部分のパフォーマンスの概要を取得し、パフォーマンスの問題を特定できます。
ProfilerRecorderプロファイラーカウンター
Unity プロファイラーにカスタム指標を表示するには、Unity Profiling Core パッケージの API を使用します。プロファイラーは または のデータを表示できます。
ProfilerCounterProfilerCounterProfilerCounterValueUnity は、プロファイラーカウンターを、カウンターがプロファイルする作業の種類、例えばレンダリング、スクリプト、アニメーションに基づいてカテゴリにグループ化します。カスタムのプロファイラーカウンターは、Unity のプロファイリングカテゴリのいずれかに割り当てることができます。使用可能なプロファイラーカテゴリの完全なリストについては、 を参照してください。
ProfilerCategoryProfilerCounterProfilerCounterValue以下の図は、プロファイラーカウンターのデータフローの概要を示しています。

プロファイラーカウンターのフロー。
ProfilerRecorderRawFrameDataViewHierarchyFrameDataViewProfilerCounterProfilerCounterValue- int
- long
- 浮動小数点
- double