Version: Unity 6.0 (6000.0)
言語 : 日本語
独自プロセスでのプロファイラーの実行
すべての関数呼び出しのインストルメント化

再生モードとエディタープロファイルのサンプル

Unity エディターまたは再生モードをプロファイルすると、Unity は関連するタイミングを以下のマーカーを持つ 2 つのサンプルグループにグループ化します。

  • PlayerLoop: 再生モードに関連するタイミング
  • EditorLoop: エディターに関連するタイミング

再生モードのサンプル

再生モードをプロファイルすると、プロファイラーは PlayerLoop 内で発生したタイミングのサンプルのみを収集します。このグループにより、CPU および GPU プロファイラーモジュールでの誤った測定を削減できます。

Unity は、CPU プロファイラーモジュールチャートEditorLoop のサンプルを Others として分類します。つまり、EditorLoop のサンプルが Others カテゴリの最大の割合を占めます。この時間のエディタの動作を調べ、Others カテゴリの詳細な内訳を取得する場合は、エディタープロセスをプロファイルします。

重要:詳細プロファイリングとターゲット再生モードを使用すると、PlayerLoopEditorLoop の両方で発生するすべての呼び出しのパフォーマンスが影響を受けます。これは、Deep Profiling がドメインのリロード時にスクリプトのメソッド呼び出しの最初と最後にフックし、どの部分が PlayerLoop から呼び出されないかを検出しないためです。EditorLoop で発生するメソッドの呼び出しは、サンプル作成のオーバーヘッドを完全には発生させませんが、サンプルを発行すべきかどうかをチェックするため、小さいながらもオーバーヘッドを発生させます。

エディターサンプル

エディタープロセスをプロファイルすると、以前は EditorLoop マーカーの下に隠れていたすべてのサンプルが、それぞれのカテゴリに反映されます。これは、CPU Profiler モジュールの詳細ペインとそのチャートの情報が大きく変化することを表します。

Unity エディターでプロファイルするときにのみ表示されるいくつかのプロファイラーマーカーがあります。これらのマーカーは、プレイヤー関連のアクティビティでは表示されず、エディターアクティビティにのみ関連します。エディター専用マーカーには以下のものがあります。

  • GetComponentNullErrorWrapper などのセキュリティチェック。null コンポーネントの使用を識別するのに役立ちます。
  • CheckConsistency。オブジェクトの設定を検証します。
  • CheckAllowDestructionRecursive。破壊のチェックです。
  • プレハブ関連のアクティビティ。

デフォルトでは、CPU Profiler モジュールの Hierarchy ビューでは、エディター専用マーカーを持つサンプルスタックは折りたたまれ、EditorOnly [SampleName] という名前が付けられます。これらのサンプルスタックやそれらの子サンプルは、ガベージコレクションのトリガーとなるマネージアロケーションの原因となる可能性がありますが、折りたたまれている場合、それらの親サンプルの GC.Alloc 値には影響しません。

デフォルトの動作を変更するには、モジュールの詳細ペインの右上にあるコンテキストメニューを選択し、Collapse EditorOnly Samples 設定を無効にします。これを行うと、サンプルを展開して、囲んでいるマーカーにその GC.Alloc 値を反映させることができます。

このオプションは、Timeline ビューには影響せず、サンプルとそれらの子は展開されて表示されます。これらのマーカーが付いたサンプルは、エディターのみのアクティビティに関連しており、マネージ割り当ての削減には影響しないため、通常は無視して問題ありません。ただし、再生モードのパフォーマンスに大きな影響を与えるかどうかを調べるのに役立ちます。

追加リソース

独自プロセスでのプロファイラーの実行
すべての関数呼び出しのインストルメント化