# CPU Usage Profiler モジュールの操作

> Navigate the CPU Usage Profiler module to investigate performance data.

CPU Usage Profiler モジュールには、各ビュー間を簡単に操作するためのユニバーサルな操作がいくつかあります。

## 選択したサンプルへのフォーカス

選択したサンプルにフォーカスするには、**F** キーを押します。何も選択していない場合は、デフォルトのズームレベルが表示されます。

**Hierarchy**、**Raw Hierarchy**、**Inverted Hierarchy** ビューに切り替えると、サンプルがメインスレッド上にある限り選択が引き継がれます。選択したセクションがすぐに見つからない場合は、**F** キーを押してフォーカスします。

## Timeline ビューでのアイテムの操作と選択

[Timeline ビュー](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md) の軸の領域をズームするには、以下を行います。

* マウスのスクロールホイールを使用するか、
* Alt キーを押しながら、右クリックしたままドラッグするか、
* 水平スクロールバーの端を使用してズームインします。
* ビューをパンするにはマウスの中ボタンを押すか、Alt キー (macOS では Command キー) を押しながらマウスの左ボタンを押します。

キーボードの **A** キーを押すとズームがリセットされ、フレーム時間全体が表示されます。

スレッドの表示を管理するには、以下のオプションが使用できます。

* スレッドの下部にある白い矢印をクリックすると、スレッドを展開してすべての行を表示できます。
* スレッドを区切る線をドラッグすると、表示する行数を調整できます。
* 行をダブルクリックすると、スレッドセクションの高さをコールスタックの最大の深度に設定できます。
* スレッドのグループを折りたたんだり展開したりするには、ビューの左端にあるスレッド名の横の折りたたみ矢印をクリックします。

## 完全なコールスタックの有効化

`GC.Alloc`、`UnsafeUtility.Malloc`、`JobHandle.Complete` が発行するサンプルの完全なコールスタックを有効にできます。これらのコールスタックを有効にするには、

1. プロファイラーのツールバーの **Call Stacks** ボタンを有効にします。デフォルトでは、`GC.Alloc` サンプルのコールスタックが有効になります。
2. 他のコールスタックを有効にするには、ドロップダウンを選択して、コールスタックを表示したい他のマーカーを有効にします。

この機能は、Unity エディターでプロファイルする場合でも、実行中のプレイヤーでプロファイルする場合でも使用できます。この機能は、設定をオンにした後にプロファイルするフレームに対してのみ有効です。

コールスタックを詳しく調べるには、

1. Timeline ビューでサンプルを選択します。
2. コールスタックをコピーするには、**Copy** を選択します。
3. 関連するコードファイルを開くには、ファイルパス (青いリンクで強調表示) を選択します。**注意**すべてのコードファイルがこの方法で確認できるわけではありません。また、コールスタック情報には、そのメソッド内の正確な行番号ではなく、メソッドの先頭の行だけが含まれます。

完全なコールスタックの詳細を開くには、

1. Hierarchy ビューまたは Raw Hierarchy ビューでサンプルを開きます。
2. **Details** ビューを **Related Data**に設定します。

Related Data ビューには、このサンプルに関連付けられているメタデータがリストされます。リストには、サンプルに関連付けられた `UnityEngine.Object` が含まれる場合があります。このパネルでは、`UnityEngine.Object` に関連付けられていないメタデータエントリーの名前は **N/A** と表示されます。**N/A** エントリーを選択すると、プロファイラーはコールスタックを含むメタデータを詳細ビューの下半分に表示します。

Unity がレポートするサンプルには、レンダリングを実行する `Camera` ゲームオブジェクトにリンクされた `Camera.Render` サンプルなど、ビルトインのメタデータを持つものもあります。Unity はインスタンス ID を使ってこれらのオブジェクトをレポートし、Profiler ウィンドウで名前に解決します (再生モードでプロファイルする場合)。これらのオブジェクトの 1 つをクリックすると、Unity はシーンの階層を使ってオブジェクトを検索し、[ping](/engine/6000.0/script-reference/unity-editor/editor-gui-utility/ping-object.md) しようとします。

アソシエーションはインスタンス ID を使用するため、ping はアプリケーションが [再生モードでプロファイルされている](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/profiling-play-mode.md) 場合と、 オブジェクトがまだ存在している場合にのみ機能します。`GC.Alloc` サンプルの場合、このビューには、この階層レベルで発生した各割り当てに 1 つずつ `N/A` 項目のリストが表示されます。割り当てのサイズは **GC.Alloc** 列に表示されます。


**Profiler ウィンドウの Timeline ビューで GC.Alloc サンプルが選択された状態 (上)、Hierarchy ビューで同じサンプルが選択された状態:**
![](/api/media?file=/engine/6000.0/media/images/profiler-cpu-hierarchy-callstack.png)

これらのマーカーの詳細は、[プロファイラーマーカー](/engine/6000.0/manual/analysis/profiler/markers.md) に関するドキュメントを参照してください。

## 追加リソース

* [プロファイラーとデータソースの接続](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications.md)
* [CPU Profiler モジュールのリファレンス](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/cpu/cpu.md)
* [プロファイラーマーカーのリファレンス](/engine/6000.0/manual/analysis/profiler/markers.md)
