1. はじめに
Editor Performance Toolは、UE5.5でExperimentalとして追加されたツールです。このツールはエディタ動作のパフォーマンスを計測し、ヒッチのタイミングやPCスペックが不足しているかどうか、といったパフォーマンス情報を検出して、ユーザーに通知したり、自動的にパフォーマンスログ(Unreal Insightsトレース)を取得することができます。
このツールを利用することで、ユーザーはエディタ動作におけるボトルネックを特定したり、定期的にエディタのパフォーマンスを観測・統計をとることができ、エディタの動作環境を安定させることに役立ちます。
2. 利用方法
このツールを有効にするには、前提としてEditor Performanceのプラグインが有効になっている必要がありますが(UE5.5ではデフォルトで有効)、実際にツールを起動するには手動で有効にする必要があります。この設定は、 [Editor Preferences] → [General] → [Performance] を開き、[Editor Peformance Tool] 内の [Enable Tool]の設定を有効にします。 有効にすると画面右下にエディタの再起動を求められるポップアップが表示されるため、エディタを再起動することで利用可能になります。
エディタを再起動すると、エディタの下部に [Performance] のステータスバーが表示されます。以下の図では警告のアイコンを表示しているため、エディタパフォーマンスにおいて何らかの警告が発生していることが確認できます。警告内容の詳細を知るためには、[View Performance Report] のパネルを選択することで表示することができます。
このパフォーマンスレポートは、エディタのメニューバー [Tools]->[Profile]->[Editor Performance] から開くこともできます。
ツールを開くと以下のようなUIを表示します。
3. プロファイルツールの項目
Editor
エディタの基本動作に関する警告の項目を表示します。
Boot
エディタの最初の初期プロセスにかかった時間を表示します。
Load Map
初期マップのロード完了までにかかった時間を表示します。
Asset Registry Scan
初期化時のアセットレジストリスキャンに要した時間を表示します。
Plugin Count
読み込んでいる(モジュールロードした)プラグインの個数を表示します。
Hitch Rate
エディタ操作時の15fpsを10回以上下回った際のヒッチ発生率を表示します。
Total Time To Editor
エディタの起動完了までに要した時間を表示します。
Stall Rate
エディタ操作時のCPUストールの発生率を表示します。
PIE
PIE (Play In Editor)、エディタでセッションを開始した際の警告の項目を表示します。
First Transition
初回PIE実行時の移行時間を表示します。
Iterative Transition
初回以降のPIE実行時の移行時間を表示します。
Shutdown
PIEのセッション終了時の時間を表示します。
Hitch Rate
PIEセッション実行時の15fpsを10回以上下回った際のヒッチ発生率を表示します。
Total Time To PIE
エディタ起動+マップロード+PIE移行時間を合算した、エディタ起動からPIEセッション開始までの時間を表示します。
Stall Rate
PIEセッション時のCPUストールの発生率を表示します。
Cache
キャッシュに関する警告の項目を表示します。
Local Efficiency
ローカルDDCのキャッシュヒット率を表示します。
Unreal Cloud DDC Latency
Unreal Cloud DDCの遅延の時間を表示します。
Unreal Cloud DDC Speed
Unreal Cloud DDCの読み取り速度を表示します。
Virtual Asset Efficiency
仮想アセットのキャッシュヒット率を表示します。
Hardware
動作中の開発PCのハードウェアに関する警告の項目を表示します。
Core Count
動作中のコア数(FPlatformMisc::NumberOfCores()で取得される値)を表示します。
Total Memory
総メモリ使用量を表示します。
Available Memory
使用可能なメモリ使用量を表示します。
Hints
各警告の内容に対してどのような警告内容かを説明し、対処方法に対するヒントを表示します。
Settings
パフォーマンスに関する各機能について、機能の有効無効を切り替えます。
Notificaitons
エディタにポップアップで通知を送信するかどうかを指定します。
Snapshots
警告が発生した際に自動的にUnreal Insights トレースのキャプチャを行うかどうかを指定します。ここで取得したキャプチャは、Project/Saved/EditorPerformance フォルダに保存されます。
Telemetry
検出したテレメトリイベントをAnalysis Systemを介してHorde Serverに通知するかどうかを指定します。
Throttling
エディタがバックグラウンド動作時にCPU使用率を下げるかどうかを指定します。エディタの設定 bThrottleCPUWhenNotForeground (Use Less CPU when in Background) と同期。
Diagnostics
エディタにパフォーマンスモニターのUI (エディタ右上上部にFPS/Mem/Objs/Stalls)の項目を表示するかどうかを指定します。エディタの設定 bMonitorEditorPerformanceと同期。
4. プロファイルの設定
パフォーマンスの測定値は、.iniファイル等で設定される期待値と比較して、現在の値が期待値を満たさない場合に警告として通知します。ここで設定する期待値は、開こうとするマップや構成で異なることが想定されるため、複数のプロファイルを設定することもできます。期待値はプロジェクトのEditor.iniで新しいプロファイルを追加したり、既存のプロファイルを定義することができます。
[EditorPerformance.Profile.MyProject_Defualt]
ProfileName=MyProject_Defualt
Editor_Boot=60.0
Editor_Startup=120.0
Editor_Load_Map=120.0
Cache_Local_Efficiency=90.0
PIE_First_Transition=30.0
PIE_Total_Time_To_PIE=60.0
PIE_Iterative_Transition=30.0
PIE_Shutdown=10.0
設定の内容および詳細は「3.パフォーマンスツールの項目」、および EditorPerformanceModule.cpp を参照してください。
5. Editor Preferences の設定
Editor Preferencesで設定する項目はDefaultEditor.iniに保存/変更を反映することができます。
Enable Tool
警告の発生を検知するツール自体の動作の有効、無効を切り替えます。
Enable Notifications
警告が発生した際に、エディタの右下にポップアップとして通知するかどうかを切り替えます。
Notification List
通知を受け取りたいイベントリストの定義です。これは通常ドロップダウンオプションを介して設定されます。
Enable Telemetry
警告が発生した際のテレメトリイベントの通知を有効または無効に切り替えることができます。
Enable Snapshots
警告が発生した際に Unreal Insights のスナップショットトレースの自動作成を有効または無効に切り替えます。
Show Warnings Only
パフォーマンスビューに警告対象となっている項目のみを表示するかどうか、フィルタの制御設定を切り替えます。