stat 进阶:从数字到方向
stat unit 只是入口。真正定位问题要靠 stat 家族的细节命令与组合用法。
常用组合拳
| 怀疑 | 命令组合 | 看什么 |
|---|---|---|
| 整体帧 | stat unit + stat fps |
谁是上限 |
| 逻辑慢 | stat game + stat tick |
Tick 组成 |
| 特定系统 | stat ai / stat physics / stat niagara |
各系统自报 |
| 渲染 | stat scenerendering |
剔除数、DrawCall 数、可见图元 |
| 内存 | stat memory |
各类池占用 |
| 加载 | stat dumpTicks |
谁在 Tick(数量与时间) |
stat dumpTicks:Tick 的点名册
Tick 是游戏线程的第一开销源。stat dumpTicks 把所有注册了 Tick 的对象打印出来,可排序可导出:
- 输出里包含 Tick 函数、所属 Actor / 组件、平均耗时;
- 常用来发现"不该 Tick 的东西在 Tick"(静态装饰品、UI 节点、已隐藏对象)。
控制台命令的脚本化
stat 输出可以落盘:stat dumphitches(记录卡顿帧)、各种 DumpXxx 生成的文本可做自动化分析。性能数据的自动化是后期项目的分水岭:人工看 stat 的项目每次排查都要半小时,脚本化的项目一跑就出报告。
看 stat 的三个陷阱
| 陷阱 | 说明 | 对策 |
|---|---|---|
| 编辑器开销混入 | 编辑器本身吃性能,数字不代表打包后 | 关键测量用 Standalone / 打包版 |
| 单帧峰值 | 偶然一帧数字不代表常态 | 看平均与分布,而非瞬时 |
| 自己影响自己 | 开 stat 本身有开销 | 高强度 stat 用于定位,不用做正式基线 |
