UE 移动端 CPU、GPU、内存问题怎么归因:一套性能分析方法
UE 移动端卡顿怎么归因:CPU、GPU、内存三条证据链不要混在一起
摘要:低帧只是结果,不是根因。移动端 UE 项目中,Game Thread、Render Thread、GPU、Present、资源流送和内存压力会交替成为瓶颈。本文给出一套从帧预算开始的归因树,并说明每条分支应该抓什么数据、看什么证据、如何形成可验证的优化建议。
标签:Unreal Engine、CPU 性能、GPU 性能、内存优化、Trace
一、先把帧率问题换算成帧预算
目标帧率对应每帧允许的时间:
| 目标帧率 | 单帧预算 |
|---|---|
| 30 FPS | 约 33.3 ms |
| 45 FPS | 约 22.2 ms |
| 60 FPS | 约 16.7 ms |
当出现低帧时,第一件事不是看平均 FPS,而是找出超出预算的时间段,并查看同一时间段内各线程和 GPU 的耗时。只有在同一个窗口里比较,才有意义。
二、一个实用的归因树
低帧或 Jank | +-- 是否有主线程/渲染线程超预算? | | | +-- 是:看调用栈、任务队列、锁等待、资源加载、动画/物理 | +-- 是否有 GPU/Present 超预算? | | | +-- 是:看 Render Pass、截帧、DrawCall、带宽、透明和后处理 | +-- 是否有内存尖峰、持续增长或频繁回收? | |