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

> Understand the difference between profiling data collected in Play mode and the data collected in the Editor.

Unity エディターまたは再生モードをプロファイルすると、Unity は関連するタイミングを[以下のマーカー](/engine/6000.0/manual/analysis/profiler/markers.md)を持つ 2 つのサンプルグループにグループ化します。

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

## 再生モードのサンプル

再生モードをプロファイルすると、プロファイラーは `PlayerLoop` 内で発生したタイミングのサンプルのみを収集します。このグループにより、[CPU](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md) および [GPU プロファイラーモジュール](/engine/6000.0/manual/rendering-and-post-processing/graphics-performance-profiling/profile-rendering/profiler-gpu.md)での誤った測定を削減できます。

Unity は、[CPU プロファイラーモジュールチャート](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md)で `EditorLoop` のサンプルを **Others** として分類します。つまり、`EditorLoop` のサンプルが **Others** カテゴリの最大の割合を占めます。この時間のエディタの動作を調べ、**Others** カテゴリの詳細な内訳を取得する場合は、[エディタープロセスをプロファイル](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-edit-mode.md)します。

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

## エディターサンプル

[エディタープロセスをプロファイル](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-edit-mode.md)すると、以前は `EditorLoop` マーカーの下に隠れていたすべてのサンプルが、それぞれのカテゴリに反映されます。これは、[CPU Profiler モジュールの詳細ペイン](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md)とそのチャートの情報が大きく変化することを表します。

[Unity エディターでプロファイル](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-edit-mode.md)するときにのみ表示されるいくつかの[プロファイラーマーカー](/engine/6000.0/manual/analysis/profiler/markers.md)があります。これらのマーカーは、プレイヤー関連のアクティビティでは表示されず、エディターアクティビティにのみ関連します。エディター専用マーカーには以下のものがあります。

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

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

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

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

## 追加リソース

* [再生モードでのパフォーマンスデータの収集](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-play-mode.md)
* [Unity エディターに関するパフォーマンスデータの収集](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-edit-mode.md)
* [CPU Usage プロファイラーモジュール](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md)
* [プロファイラーマーカーのリファレンス](/engine/6000.0/manual/analysis/profiler/markers.md)
