Timing Insights

Unreal Insights における Timing Insights (タイミング インサイト) ウィンドウの概要について説明します。

[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] トラックに切り替えて、そのフレームのデータを表示できます。

main-toolbar-insights

時間ブロックを選択して集計を表示したり、各パネルを表示または非表示にしたり、データの並び替えや分類を実行したり、ログ出力を確認したりすることができます。これを行うには、 フレーム パネル で 1 つのフレームをクリックするか、タイミング パネルの上部にあるスクラブバーのセクション (タイム ルーラー) をクリックしてドラッグします。

Frames

[Frames] パネルには、各フレームの合計所要時間が棒グラフ形式で表示されます。これは、レベルがロードされたときや、最適化されていないシーンが表示されたとき、または多数のアクタが同時にスポーンされたときなどに生じるパフォーマンスやフレームレートの低下など、全般的な傾向を特定する際に役立ちます。

frames-panel

上の図のパネルには、[Frames]、[Timing]、[Timers]、[Callers]、[Callees]、[Counters]、および [Log] の各トラックが表示されています。

カーソルをバーの上に置くと、そのフレームのインデックスと実行にかかった時間が表示されます。

frames-index

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

zoom-context-menu

オプション

説明

Auto Zoom (自動ズーム)

セッション時間範囲全体をフレーム表示ウィンドウに合わせます。

Zoom Timing View on Frame Selection (フレーム選択時にタイミング ビューにズーム)

フレームの選択時にタイミング ビューをズームするかどうかを切り替えます。

これらのオプションは「UnrealInsightsSettings.ini」ファイルで編集することもできます。

Timing

それぞれのトラックの横の矢印をクリックして、表示/非表示にすることが可能です。

timing-tracks

All Tracks

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

all-tracks-menu

CPU/GPU

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

cpu-gpu-menu

Other

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

other-menu

Plugins

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

plugins-menu

View Mode

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

view-mode-options

タイミング ビューのオプション

説明

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 タイミング イベントに割り当てることができます。

カラー キーは次のとおりです。

  • ≥ 10ms:赤色

  • ≥ 1ms:黄色

  • ≥ 100μs:緑色

  • ≥ 10μs:シアン

  • ≥ 1μs:青色

  • < 1μs:グレー

Allow Panning on Screen Edges (画面エッジでのパニングを許可)

有効にすると、マウス カーソルが画面のエッジ部分に到達した際にもパニングが継続します。

Quick Find ウィジェット

Quick Find (クイック検索) ウィジェットは、タイミング ビュー に表示されているイベントの検索とフィルタリングに使用します。このウィジェットは、タイミング ビューのコンテキスト メニューから、またはタイミング ビューにフォーカスがある際に タイミング イベント を右クリックするか、Ctrl + F ショートカット キーを押すことで起動できます。

quick-find-widget

Quick Find ウィジェットの検索ロジックは、グループフィルタ を使って定義します。Group ノードには子 Filter ノードが含まれており、子の結果に適用するロジックを定義します。Filter ノードはリーフ ノードであり、それぞれフィルタが含まれています。

それぞれのフィルタには次が含まれます。

  • フィルタ タイプ。ドロップダウン メニューから選択できます。

  • フィルタ演算子。これもドロップダウン メニューから選択可能です。

  • フィルタ値。テキスト ボックスを使って入力します。

フィルタ ロジックを作成したら、これを使ってタイミング ビューでイベントを検索したり、トラックをフィルタリングしたりできます。

フィルタ

説明

Find First (最初を検索)

フィルタに一致する最初のイベントを、イベントの開始時間の順に検索します。一致するものが見つかると選択されて、タイミング ビューにそれが表示されます。

Find Previous (前を検索)

フィルタに一致する前のイベントを検索します。検索は、現在選択しているイベントの開始時間から始まります。イベントが選択されていない場合は Find First として動作します。

Find Next (次を検索)

フィルタに一致する次のイベントを検索します。検索は、現在選択しているイベントの開始時間から始まります。イベントが選択されていない場合は Find Last として動作します。

Find Last (最後を検索)

フィルタに一致する最後のイベントを、イベントの開始時間の順に検索します。一致するものが見つかると選択されて、タイミング ビューにそれが表示されます。

Apply Filter

フィルタ ロジックを満たす、トラックからのすべてのタイミング イベントをハイライト表示します。

Clear filters

フィルタのロジックに基づくイベントのハイライト表示を停止します。

フィルタのロジックに変更を加えた場合は、新しいロジックに基づいてイベントをハイライト表示するために、[Apply Filter] を再びクリックする必要があります。

Timers

[Timers (タイマー)] パネルには、[Timing] パネルで指定した時間範囲内に実行されたすべてのタイマー イベントがリスト表示されます。このリストでは、時間範囲に基づいてデータをグループ化できるだけでなく、アクティブな列の値で昇順または降順に並べ替えることもできます。

グループ名

説明

Flat (フラット)

単一のグループを作成します。すべてのタイマーを含みます。

Timer Name (タイマー名)

1 文字に対して 1 つのグループを作成します。

Timer Type (タイマー タイプ)

タイマー タイプごとに 1 つのグループを作成します。

Instance Count (インスタンス カウント)

それぞれの対数範囲 (1-10、10-100、100-1000) にグループを 1 つ作成します。

並び順を変更したり、列をアクティブまたは非アクティブにしたりするには、列を右クリックします。次のオプションを利用できます。

ソート オプション

その他のソート オプション

説明

Sort Ascending (昇順でソート) (タイマー、グループ名、インスタンス カウント、総排他、総包括。)

列を昇順でソートします。

Sort Descending (降順でソート) (タイマー、グループ名、インスタンス カウント、総排他、総包括。)

列を降順でソートします。

Sort By (ソート条件)

  • Timer or Group Name (タイマー名またはグループ名)

  • Instance Count

  • Total Inclusive Time

  • Total Exclusive Time

  • Sort Ascending

  • Sort Descending

  • タイマー名またはグループ名。

  • 選択したインスタンス数。

  • 選択したタイマーのインスタンスの総包括期間。

  • 選択したタイマーのインスタンスの総排他期間。

列の可視性グループ

説明

View Column (列を表示)

次の列を表示または非表示にします。

  • Timer Or Group Name

  • Meta Group Name

  • Type

  • Instance Count

  • Total Inclusive Time

  • Max Inclusive Time (最大包括時間)

  • Average Inclusive Time (平均包括時間)

  • Median Inclusive Time (包括時間の中央値)

  • Min Inclusive Time (最小包括時間)

  • Total Exclusive Time

  • Max Exclusive Time (最大排他時間)

  • Average Exclusive Time (平均排他時間)

  • Median Exclusive Time (排他時間の中央値)

  • Min Exclusive Time (最小排他時間)

Show All Columns (すべての列を表示)

すべての列を表示するようにツリー ビューをリセットします。

Reset Columns to Min/Max/Median Preset (列を最小/最大/中央値のプリセットにリセット)

列を最小/最大/中央値のプリセットにリセットします。

Reset Columns to Default (列をデフォルトにリセット)

列をデフォルトにリセットします。

アセット ロード時間

Timing Insights をコマンドラインから起動する場合、Asset Load Time チャンネルを使用して、 UObject::Serialize の名前付き CPU タイマーを有効にし、ブループリント名のトレースをトグルすることが可能です。

従来は、ブループリント名の追跡がデフォルトで有効になっていましたが、トレース ランタイム イベントに多くの負荷がかかっていました。今回は、ブループリント名のトレースを有効にする場合、コマンドラインからこの引数をオンにする必要があります。

アセット ロード時間の追跡をコマンドラインから有効にするには、引数 -trace=default,AssetLoadTime を使用します。

    `-trace=default,AssetLoadTime`

ブループリント名をオンに切り替えるときにタイマーが追加されますが、その数が多いため、デフォルトでは Trace Insights には表示されません。アセット ロード時間のトラッキングを有効にした後、 -statnamedevents 引数を追加することで、ブループリント名を表示できます。

ブループリント名を有効にする

アセット ロード時間のトラッキングを有効にした後、 -statnamedevents 引数を追加することで、ブループリント名を表示できます。

    `-statnamedevents`.

UI を開かずにコマンドを実行

Timing Insights は、UI を開かないでコマンドラインから直接起動できます。コマンドラインで直接単一のコマンドを指定することも、応答ファイルを使用して、コマンドのセットを実行することもできます。いずれの場合も、データのセットは CSV または TSV ファイルにエクスポートされます。 いずれの場合も、データのセットは .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)

選択したタイマーとそのグループ化された統計情報をテキスト ファイルにエクスポートします。

  1. タイミング ビューに移動して、メイン タイムライン ビューの保存する部分 (時間) を時間バー上でクリックしてドラッグすることでマークできます。

  2. グループ化された統計情報が [Timers] パネルで更新され、選択した時間が反映されます。

  3. [Timers] パネルで、保存するタイマーを手動で選択するか、Ctrl+A を押してすべてのタイマーを選択します。

  4. 次に Ctrl+S を押すか、コンテキスト メニューから [Export] を選択して、選択したタイマーとその集計統計情報 (選択した時間範囲内のもの) を *.tsv,*.txt または *.csv ファイルのいずれかに保存します。

Export Timing Events (タイミング イベントをエクスポート)

タイミング イベントをテキスト ファイルにエクスポートします。

  1. タイミング ビューに移動して、メイン タイムライン ビューのエクスポートする部分 (時間) を時間バー上でクリックしてドラッグすることでマークできます。

時間を選択しないと、タイムライン全体がエクスポートされます。

  1. [Timing (タイミング)] パネルで CPU/GPU スレッド トラックをクリックし、エクスポートするトラックを表示/非表示にします。

  2. 目的のタイマーを選択するか、Ctrl+A を押してすべてのタイマーを選択します。

  3. コンテキスト メニューから [Export Timing Events (Selection)... (タイミング イベントをエクスポート (選択内容))] を選択し、タブ区切り値 (*.tsv/*.txt) またはコンマ区切り値 (*.csv) のファイルを選択します。

  4. また、スレッド ID とタイマー ID をスレッド名とタイマー名に一致させるために、「スレッド」と「タイマー」をエクスポートすることもできます。

More Export Options (その他のエクスポート オプション) / Export Threads (スレッドをエクスポート)

タイマーのリストをテキスト ファイルにエクスポートします (.tsv または .csv)。

More Export Options (その他のエクスポート オプション) / Export Timing Events (All) (タイミング イベントをエクスポート (すべて))

すべての CPU/GPU スレッドのすべてのタイミング イベントをテキスト ファイルにエクスポートします (.tsv または .csv)。

小規模なセッションであっても、数十万にも及ぶタイミング イベントが含まれる場合があるため、エクスポートしたファイルのサイズが非常に大きくなる可能性があります。

CPU タイマーのソース ファイル

[Timers] パネル内では、ソース ファイルおよびライン番号が各タイマーのツールヒントに表示されます。

source-files-for-cpu-timers

Callers および Callees

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

callers-callee-panel

カウンター

[Counters] タブには、[Timers] パネルと同じ期間中に増分されたすべての統計がリストされます。ソート順および列の並びを更新することで、パネルを再度整理できます。

以下のグループを使用できます。

グループ名

説明

Flat (フラット)

単一のグループを作成します。すべてのカウンターを含みます。

Stats Name (統計名)

1 文字に対して 1 つのグループを作成します。

Meta Group Name (メタ グループ名)

カウンターのメタデータ グループ名に基づいて複数のグループを作成します。

Counter Type (カウンター タイプ)

カウンター タイプごとに 1 つのグループを作成します。

Data Type (データ タイプ)

各データ タイプに 1 つのグループを作成します。

Count (カウント)

それぞれの対数範囲 (1-10、10-100、100-1000) にグループを 1 つ作成します。

Log (ログ)

[Log (ログ)] ビューには、トレース セッションでの UE_LOG マクロへの呼び出しによって生成されたすべてのログが表示されます。ログは、エディタの [Output Log (アウトプット ログ)] ウィンドウと同様に、冗長性カテゴリ によってフィルタリングできます。

log-view

[Timing] パネルで期間を選択すると、その期間内のすべてのログ エントリがハイライト表示されます。複数のログ エントリを選択した場合は、これらのエントリ間の時間範囲がハイライト表示されます。 入力したテキストと一致しないすべてのログ メッセージを取り除く (フィルタリングする) 検索ボックスもあります。フィルタリングに加えて、任意の行をクリックすると、その行のテキストが記録された時間に [Timing] パネルが移動します。 ログは、一つまたは複数のメッセージを選択してコンテキスト メニューを右クリックし、ドロップダウン メニューから次のオプションのいずれかを選択することで保存できます。

メニュー オプション

説明

Copy (コピー) (CtrlL+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 を起動しておく必要があります。起動していない場合、スタート ページのみが開く場合があります。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル