[Timing Insights (タイミング インサイト)] ウィンドウには、CPU トラックや GPU トラックなど、異なるトラックのフレームごとのパフォーマンス データが表示されます。タイミング ビュー には新しい ツールバー があり、[Tracks (トラック)] ドロップダウン メニューが複数のメニューに分割され、プロジェクトのさまざまなタスクにかかる時間を視覚化して表示できるようになりました。
[Timing Insights] ウィンドウは、[Frames (フレーム)] パネル (1)、[Timing (タイミング)] パネル (2)、[Log (ログ)] パネル (3)、[Timers (タイマー)] タブと [Counters (カウンター)] タブ (4)、[Callers (呼び出し元)] パネルと [Callees (呼び出し先)] パネル (5) で構成されています。
[Timing Insights] メイン ツールバー
このツールバーには、グループ別に表示する時間ブロックの選択や、データのソートまたはカテゴリ化、ログ出力の確認を行うオプションが表示されています。
それぞれのトラックをクリックすることで、[Timing]、[Timers]、[Callers]、[Callees]、[Counters]、または [Log] トラックに切り替えて、そのフレームのデータを表示できます。

時間ブロックを選択して集計を表示したり、各パネルを表示または非表示にしたり、データの並べ替えや分類を実行したり、ログ出力を確認したりすることができます。これを行うには、フレーム パネル で 1 つのフレームをクリックするか、タイミング パネルの上部にあるスクラブバーのセクション (タイム ルーラー) をクリックしてドラッグします。
Frames
[Frames] パネルには、各フレームの合計所要時間が棒グラフ形式で表示されます。これは、レベルがロードされたときや、最適化されていないシーンが表示されたとき、または多数のアクタが同時にスポーンされたときなどに生じるパフォーマンスやフレームレートの低下など、全般的な傾向を特定する際に役立ちます。

上の図のパネルには、[Frames]、[Timing]、[Timers]、[Callers]、[Callees]、[Counters]、および [Log] の各トラックが表示されています。
カーソルをバーの上に置くと、そのフレームのインデックスと実行にかかった時間が表示されます。

棒グラフの部分を右クリックすると、次の [Zoom (ズーム)] ドロップダウン コンテキスト メニューが表示されます。

オプション | 説明 |
---|---|
自動ズーム | セッション時間範囲全体をフレーム表示ウィンドウに合わせます。 |
フレーム選択時にタイミングビューにズーム | フレームの選択時にタイミング ビューをズームするかどうかを切り替えます。 |
これらのオプションは「UnrealInsightsSettings.ini
」ファイルで編集することもできます。
Timing
それぞれのトラックの横の矢印をクリックして、表示/非表示にすることが可能です。

すべてのトラック
[All Tracks] ドロップダウン矢印をクリックすると、すべての使用可能なトラックのリストが表示されます。

CPU/GPU
[CPU/GPU] ドロップダウン矢印をクリックすると、CPU および GPU トラックと、スレッド グループのオプションが表示されます。

その他
[Other] ドロップダウン矢印をクリックすると、[Main Graph (メイン グラフ)]、[File Activity (ファイル アクティビティ)]、[Asset Loading (アセット ローディング)]、および [Frames (フレーム)] トラックの可視性オプションが表示されます。

プラグイン
[Plugins (プラグイン)] ドロップダウン矢印をクリックすると、[Slate (スレート)]、[Gameplay (ゲームプレイ)]、[Animation (アニメーション)]、[RDG Tracks (RDG トラック)] についての情報など、プラグインによって公開されるトラックおよびオプションが表示されます。

表示モード
[View Mode (ビュー モード)] ドロップダウン矢印には、タイミング ビューのさまざまなオプションのコントロールが表示されます。

タイミング ビューのオプション | 説明 |
---|---|
Compact Mode (コンパクト モード - ショートカット キー:C) | 縮小された高さをサポートするトラックとともにタイミング トラックを表示するコンパクト モードを切り替えます。 |
Auto Hide Empty Tracks (空のトラックを自動的に隠す - ショートカット キー:V) | タイミング イベントを含まない空のトラックを自動的に非表示にします。このオプションは「UnrealInsightsSettings.ini 」ファイルに維持されます。 |
Depth Limit (深度制限 - ショートカット キー:X) * Unlimited (無制限) / 4 Lanes (4 レーン) / Single Lane (単一レーン) | さまざまな CPU 深度オプションの表示を切り替えます。X ショートカット キーを使うことで、さまざまな CPU 深度オプションに切り替えることができます。 |
Coloring Mode (CPU Thread tracks) (カラーリング モード (CPU スレッド トラック)) | 持続時間 (包括時間) に基づいて色を CPU/GPU タイミング イベントに割り当てることができます。 カラー キーは次のとおりです。
|
画面エッジでのパニングを許可 | 有効にすると、マウス カーソルが画面のエッジ部分に到達した際にもパニングが継続します。 |
Quick Find ウィジェット
Quick Find (クイック検索) ウィジェットは、タイミング ビュー に表示されているイベントの検索とフィルタリングに使用します。このウィジェットは、タイミング ビューのコンテキスト メニューから、またはタイミング ビューにフォーカスがある際に タイミング イベント を右クリックするか、Ctrl + F ショートカット キーを押すことで起動できます。

Quick Find ウィジェットの検索ロジックは、グループ と フィルタ を使って定義します。Group ノードには子 Filter ノードが含まれており、子の結果に適用するロジックを定義します。Filter ノードはリーフ ノードであり、それぞれがフィルタを含んでいます。
それぞれのフィルタには次が含まれます。
-
フィルタ タイプ。ドロップダウン メニューから選択できます。
-
フィルタ演算子。これもドロップダウン メニューから選択可能です。
-
フィルタ値。テキスト ボックスを使って入力します。
フィルタ ロジックを作成したら、これを使ってタイミング ビューでイベントを検索したり、トラックをフィルタリングしたりできます。
フィルタ | 説明 |
---|---|
最初を検索 | フィルタに一致する最初のイベントを、イベントの開始時間の順に検索します。一致するものが見つかると選択されて、タイミング ビューにそれが表示されます。 |
前を検索 | フィルタに一致する前のイベントを検索します。検索は、現在選択しているイベントの開始時間から始まります。イベントが選択されていない場合は Find First として動作します。 |
Find Next (次を検索) | フィルタに一致する次のイベントを検索します。検索は、現在選択しているイベントの開始時間から始まります。イベントが選択されていない場合は Find Last として動作します。 |
Find Last (最後を検索) | フィルタに一致する最後のイベントを、イベントの開始時間の順に検索します。一致するものが見つかると選択されて、タイミング ビューにそれが表示されます。 |
Metadata | 複数のメタデータ フィールドでフィルタリングするためのフィールドを提供します。詳細については、以下の「メタデータ フィルタの使い方」を参照してください。 |
フィルタを適用 | フィルタ ロジックを満たす、トラックからのすべてのタイミング イベントをハイライト表示します。 |
Clear filters (フィルタをクリア) | フィルタのロジックに基づくイベントのハイライト表示を停止します。 |
フィルタのロジックに変更を加えた場合は、新しいロジックに基づいてイベントをハイライト表示するために、[Apply Filter] を再びクリックする必要があります。
メタデータ フィルタの使い方
メタデータ フィルタを追加すると、フィルタリングしたいメタデータを入力できる複数のフィールドが提供されます。これらのフィールドは次のとおりです。

Index | フィールド | 説明 |
---|---|---|
1 | キー | メタデータ フィールドを含みます。文字列値であり、また完全一致する必要があります。 |
2 | DataType | 検索したいメタデータ フィールドのタイプ。たとえば、文字列や浮動小数。 |
3 | Operator | メタデータ値に適用したい演算子と [値] テキストボックスの値 (以下を参照)。利用可能な演算子は、選択された DataType に依存します。 |
4 | 値 | 演算子の 2 番目のメンバーとして使用したい値。入力値は、選択された DataType と互換性がある必要があります。 |
例として、「AssetPath」というキーを持ち、タイプが文字列で、文字列「Pawn」を含む値を持つメタデータ フィルタを作成できます。

以下の 2 番目の例では、メタデータ フィルタと他のタイプのフィルタの組み合わせを示しています。タイプが Int で値が 6500 より大きい「SizeInBytes」というキーを持つメタデータ フィールドがある「FRDGBufferPool_CreateBuffer」という名前のすべてのタイマー名イベントを検索します。

特殊な文字列 *
を使用して、キー、タイプ、または値に関係なく、メタデータが添付されたイベントをすべて表示できます。
タイマー
[Timers (タイマー)] パネルには、[Timing (タイミング)] パネルで指定した時間範囲内に実行されたすべてのタイマー イベントがリスト表示されます。このリストでは、時間範囲に基づいてデータをグループ化できるだけでなく、アクティブな列の値で昇順または降順に並べ替えることもできます。
グループ名 | 説明 |
---|---|
フラット | 単一のグループを作成します。すべてのタイマーを含みます。 |
タイマー名 | 1 文字ごとにグループを 1 つ作成します |
タイマー型 | タイマータイプごとに1つのグループを作成します。 |
インスタンスカウント | それぞれの対数範囲 (1-10、10-100、100-1000) にグループを 1 つ作成します。 |
並び順を変更したり、列をアクティブまたは非アクティブにしたりするには、列を右クリックします。次のオプションを利用できます。
ソート オプション | その他のソート オプション | 説明 |
---|---|---|
Sort Ascending (昇順でソート) (タイマー、グループ名、インスタンス カウント、総排他、総包括。) | 列を昇順でソートします。 | |
Sort Descending (降順でソート) (タイマー、グループ名、インスタンス カウント、総排他、総包括。) | 列を降順でソートします。 | |
ソート基準: |
|
|
列の可視性グループ | 説明 |
---|---|
カラムを表示 | 次の列を表示または非表示にします。
|
すべての列を表示 | すべての列を表示するようにツリー ビューをリセットします。 |
列を最小/最大/中央値のプリセットにリセット | 列を最小/最大/中央値のプリセットにリセットします。 |
Reset Columns to Default (列をデフォルトにリセット) | 列をデフォルトにリセットします。 |
アセット ロード時間
コマンドラインから Timing Insights を開始する際、アセット ロード時間チャンネルを使用して、UObject::Serialize
の名前付き CPU タイマーを有効にしたり、ブループリント名の追跡を切り替えたりできます。
従来は、ブループリント名の追跡がデフォルトで有効になっていましたが、トレース ランタイム イベントに多くの負荷がかかっていました。今回は、ブループリント名のトレースを有効にする場合、コマンドラインからこの引数をオンにする必要があります。
アセット ロード時間の追跡をコマンドラインから有効にするには、次の引数を使用できます
`-trace=default,AssetLoadTime`
ブループリント名をオンに切り替えるときにタイマーが追加されますが、その数が多いため、デフォルトでは Trace Insights には表示されません。
ブループリント名の有効化
アセット ロード時間のトラッキングを有効にした後、次の引数を追加することで、ブループリント名を表示できます。
`-statnamedevents`.
UI を開かずにコマンドを実行
Timing Insights は、UI を開かないでコマンドラインから直接起動できます。コマンドラインで直接単一のコマンドを指定することも、応答ファイルを使用して、コマンドのセットを実行することもできます。
いずれの場合も、データのセットは .csv
または .tsv
ファイルにエクスポートされます。
コマンド | 説明 |
---|---|
TimingInsights.ExportThreads |
GPU スレッドと CPU スレッドのリストをエクスポートします。 |
TimingInsights.ExporTimers |
このコマンドは、GPU タイマーと CPU タイマーのリストをエクスポートします。 |
TimingInsights.ExportTimingEvents |
GPU タイミング イベントと CPU タイミング イベントのリストをエクスポートします。エクスポートされるイベントのリストは、スレッド、タイマー、時間の範囲でフィルタリングできます。 |
TimingInsights.ExportTimerStatistics |
このコマンドは、GPU タイマーと CPU タイマーのリストおよびそれらの集約統計情報をエクスポートします。 |
これらのコマンドは自動テストを実行するときに役に立ちます。
エクスポート機能
[Timers] パネルには、タイミング イベント データをエクスポートできる機能が備わっています。目的のタイマー (複数可) を選択し、右クリックしてコンテキスト メニューを開きます。
[Timer] のオプション には次のものが含まれます。
オプション | 説明 |
---|---|
Open Source in Visual Studio (Visual Studio でソースを開く) | 選択したメッセージのソース ファイルを Visual Studio で開きます。 このオプションを使用する前に Visual Studio を起動しておく必要があります。起動していない場合、スタート ページのみが開く場合があります。 |
他の [Miscellaneous (その他)] セクションには次のエクスポート オプションが含まれています。
オプション | 説明 |
---|---|
Copy To Clipboard (クリップボードにコピー) (Ctrl+C) | 選択したタイマーとそのイベントをクリップボードにコピーします。 |
Export (エクスポート) (Ctrl+S) | 選択したタイマーとそのグループ化された統計情報をテキスト ファイルにエクスポートします。
|
Export Timing Events (Selection)... (タイミング イベントをエクスポート (選択内容)) | タイミング イベントをテキスト ファイルにエクスポートします。
|
More Export Options (その他のエクスポート オプション) / Export Threads (スレッドをエクスポート) | タイマーのリストをテキスト ファイルにエクスポートします (.tsv または .csv )。 |
More Export Options (その他のエクスポート オプション) / Export Timing Events (All) (タイミング イベントをエクスポート (すべて)) | すべての CPU/GPU スレッドのすべてのタイミング イベントをテキスト ファイルにエクスポートします ( 小規模なセッションであっても、数十万にも及ぶタイミング イベントが含まれる場合があるため、エクスポートしたファイルのサイズが非常に大きくなる可能性があります。 |
CPU タイマーのソース ファイル
[Timers] パネル内では、ソース ファイルおよびライン番号が各タイマーのツールヒントに表示されます。

Callers および Callees
[Callers] パネルおよび [Callees] パネルには、タスク イベントの階層リストが表示されます。個々のタスクの情報アイコンにカーソルを合わせてタイミング ビューからイベントを選択すると、インスタンス数、および合計の 包括 時間と 排他 時間の詳細情報を含む、[Id]、[Name]、[Type]、[Source]、インスタンス数 ([Num Instances]) が表示されます。

カウンター
[Counters] タブには、[Timers] パネルと同じ期間中に増分されたすべての統計がリストされます。ソート順および列の並びを更新することで、パネルを再度整理できます。
以下のグループを使用できます。
グループ名 | 説明 |
---|---|
フラット | 単一のグループを作成します。すべてのカウンターを含みます。 |
統計名 | 1 文字ごとにグループを 1 つ作成します |
メタグループ名 | カウンターのメタデータグループ名に基づいて複数のグループを作成します。 |
カウンター タイプ | カウンター タイプごとに 1 つのグループを作成します。 |
Data Type | 各データ タイプに 1 つのグループを作成します。 |
Count | それぞれの対数範囲 (1-10、10-100、100-1000) にグループを 1 つ作成します。 |
Log
[Log (ログ)] ビューには、トレース セッションでの UE_LOG マクロへの呼び出しによって生成されたすべてのログが表示されます。ログは、エディタの [Output Log (出力ログ)] ウィンドウと同様に、冗長性 と カテゴリ によってフィルタリングできます。

[Timing] パネルで期間を選択すると、その期間内のすべてのログ エントリがハイライト表示されます。複数のログ エントリを選択した場合は、これらのエントリ間の時間範囲がハイライト表示されます。 入力したテキストと一致しないすべてのログ メッセージを取り除く (フィルタリングする) 検索ボックスもあります。フィルタリングに加えて、任意の行をクリックすると、その行のテキストが記録された時間に [Timing] パネルが移動します。 ログは、1 つまたは複数のメッセージを選択してコンテキスト メニューを右クリックし、ドロップダウン メニューから次のオプションのいずれかを選択することで保存できます。
メニュー オプション | 説明 |
---|---|
Copy (コピー) (Ctrl+C) | 選択したログを (そのすべてのプロパティとともに) クリップボードにコピーします。 |
Copy Message (メッセージをコピー) (Shift+C) | 選択したログのメッセージ テキストをクリップボードにコピーします。 |
Copy Range (範囲をコピー) (Ctrl+Shift+C) | 選択した時間範囲 (青色でハイライト表示) に含まれるすべてのログをクリップボードにコピーします。 |
Copy All (すべてをコピー) | すべてのログをクリップボードにコピーします。 |
Save Range As… (名前を付けて範囲を保存) (Ctrl+S) | 選択した時間範囲 (青色でハイライト表示) に含まれるすべてのログをテキスト ファイル (タブ区切りまたはコンマ区切り) に保存します。 |
Save All As… (名前を付けてすべてを保存) | すべての (フィルタリングされた) ログをテキスト ファイル (タブ区切りまたはコンマ区切り) に保存します。 |
Open Source in Visual Studio (Visual Studio でソースを開く) | 選択したメッセージのソース ファイルを Visual Studio (または登録済みの別の IDE) で開きます。 このオプションを使用する前に Visual Studio を起動しておく必要があります。起動していない場合、スタート ページのみが開く場合があります。 |