[UE5.7.4][Unreal Insights] Unreal Insightsを利用してのC++最適化方法

計測開始

計測終了

Unreal Insightsの起動

計測結果の選択

時間範囲計測の方法

左右ドラッグで位置移動、

マウスオーバーで このマテリアルの処理だとかが、わかる

左クリックで選択

右クリックでメニュー表示

シングルクリックしてから、別の位置で Ctrl + クリックで 範囲の時間を表示できる。


TRACE_CPUPROFILER_EVENT_SCOPEで関数をマークする。

public:
	virtual void Tick(float DeltaTime) override;

cpp

#include "ProfilingDebugging/CpuProfilerTrace.h"

void ASideScrollingCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	///////////////////////////////////////////////////////////////////
	TRACE_CPUPROFILER_EVENT_SCOPE(ASideScrollingCharacter::Tick);

	// 重たい処理1
	for (int32 i = 0; i < 100; ++i)
	{
		UE_LOG(LogTemp, Log, TEXT("Omotai 1"));
	}
	// 重たい処理2
	for (int32 i = 0; i < 1000; ++i)
	{
		UE_LOG(LogTemp, Log, TEXT("Omotai 2"));
	}

	////////////////////////////////////////////////////////////////////
	//////////////////////他の処理//////////////////////////////////////
	if (!bIsOnLadder)
	{
		return;
	}
}

ビルドしてから実行

TRACE_CPUPROFILER_EVENT_SCOPE の処理の箇所を検索

1,Timersで「ASideScrollingCharacter::Tick」で検索し

2,出てきたASideScrollingCharacter::Tickを右クリックしHighlighting Eventを使い

3,出てきたASideScrollingCharacter::Tickを右クリックしFind Instance>First Instanceでスレッドが見つかる

参考URL

式会社アドグローブの公式ブログ:TRACE_CPUPROFILER_EVENT_SCOPEによるお手軽C++プロファイリング![UE5.1]
https://blog.adglobe.co.jp/entry/2023/05/12/100000

※はてなブログ(mawasiの備忘録)
https://mawasi.hateblo.jp/entry/2025/06/16/023611
によると、以前のQUICK_SCOPE_CYCLE_COUNTERより、こちらのマクロが推奨されています。
Unreal Insightsの起動: Engine/Binaries/Win64/UnrealInsights.exe を実行します。
プロファイリングの実行: エディタまたはパッケージ化したゲームを、コマンドライン引数 -trace=cpu,frame を使用して起動します。
データの確認: Unreal Insights上の「Timing Insights」タブで、埋め込んだタグ(例: MyFunction_Tag)を検索して計測結果を確認します。

関連・補足情報
詳細なボトルネック調査: Qiitaの記事

https://qiita.com/nonbiri15/items/7968e55bbf4fd61ab4df

で述べられている通り、CPUとGPUのボトルネックを特定し、ボトルネックの修正に活用できます。
関数の呼び出し回数: TRACE_CPUPROFILER_EVENT_SCOPEを使用すると、処理時間だけでなく、関数の呼び出しツリーや回数も確認できます。
詳細な情報源: 株式会社ヒストリアさんの改訂版記事

https://historia.co.jp/archives/48769

では、より詳細なUnreal Insightsの使用方法が解説されています。

この方法を使うことで、ゲームパフォーマンスの改善に役立つ正確なデータを得ることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です