Unreal Insights:捕捉与阅读

Unreal Insights 是 UE5 时代主推的帧级分析工具。它把"运行时发生的一切"录成 Trace,事后慢慢看。

开启 Trace 的方法

方法 适用
编辑器启动参数 -trace=frame,cpu,loadtime,... 开发期固定开启
控制台 trace.start default / trace.stop 临时录制
-trace=... + trace.file 写文件 离线保存
直接用 UnrealInsights 程序连接 实时观看

常用 Channel:frame(帧事件)、cpu(CPU 任务)、loadtime(加载)、memory(内存)、bookmark(自定义书签)。

Timing Insights 的读法

打开 Trace 文件后:

  1. Frames 视图:每帧的时长,先找尖峰帧(红色高柱);
  2. Time 图区:该帧的时间轴,每个 Event 是一条横向条——长度 = 耗时,位置 = 时刻;
  3. Tracks:左侧的线程/类别轨道(Game / Render / 各 Worker 线程),可以看到并行与依赖;
  4. Callees/Callers:选中一个 Event,向下钻取它的组成。

核心动作:钻取(Drill Down)。选中游戏线程的长条 → 展开 → 找到最长的子任务 → 继续展开,直到定位到具体函数 / 事件。

从 Trace 到行动的例子

Trace 显示某帧 30ms → 钻取发现 15ms 在 "Component Initialize" → 再钻取发现一个蓝图组件的 BeginPlay 里做了 3000 次射线检测 → 原因是新关卡一口气 Spawn 了 100 个敌人。

没有 Insights,这个故事里的每一层都靠猜;有了 Insights,定位到具体函数只需 5 分钟。

自定义 Trace 事件

C++ / 蓝图里可以插入自定义事件(如 TRACE_BOOKMARK、FTraceBookmark),让 Trace 里出现"业务名字"("BOSS 战开始"),而不是一堆引擎内部名字。调试用 Trace 友好度倍增。