Wiki
815 words
4 minutes
性能分析工具是什么
Updated 2025-12-01
这些工具是干什么的
性能分析工具不是“一个总开关”,而是一组从不同角度观察帧时间和资源占用的工具链。常见目标只有三个:判断当前是 CPU、GPU 还是内存问题;定位问题发生在哪个模块;验证优化前后有没有真正变好。

最常用的几类工具
Unity Profiler
入口工具。先看 CPU Usage、Rendering、GPU Usage、Memory 这几个模块:
CPU Usage:看脚本、渲染、GC、物理等主要耗时Rendering:看 batches、SetPass、triangles、verticesGPU Usage:判断是否 GPU-boundMemory:先看整体趋势和分配变化
Frame Debugger
当你已经确认“问题在渲染提交或某个渲染阶段”时,用它逐 draw call 回放一帧。它适合回答:
- 为什么这一帧有这么多 Pass
- 是谁打断了批处理
- 哪个全屏效果或阴影阶段最重
Memory Profiler
当问题是峰值内存、泄漏、资源常驻过高时,用快照看纹理、Mesh、Managed Heap、Native 内存占用结构,而不是只看总量数字。
Profile Analyzer
当你要比较“优化前”和“优化后”是否真的稳定变好时,用它分析多帧 CPU 数据,而不是只盯着单帧峰值。
【重点】日常排查里,通常是 Profiler -> Frame Debugger / Memory Profiler -> Profile Analyzer 这样的组合,而不是一次只开一个工具。
真机调试为什么重要
Editor 下的数据经常混入编辑器自身开销,很多渲染与内存问题也只会在目标设备上暴露。尤其是移动端,发热、降频、带宽、驱动行为都需要真机确认。
建议最少保留一套真机链路:
Development BuildAutoconnect Profiler- 只在需要时开启更重的深度分析选项,避免分析工具本身把数据扰乱
一条实用的定位流程
1. 先判断瓶颈方向
CPU Usage里主线程、渲染线程、Job 线程谁在占时间- 如果经常出现
Gfx.WaitForPresent...一类等待,通常要继续确认是不是 GPU 或 VSync 相关 - 如果
GC.Alloc、GC 峰值频繁,优先查脚本分配
2. 再选专门工具
- 渲染批次、Pass、过多全屏阶段:看
Rendering模块和Frame Debugger - 贴图或资源内存过高:看
Memory模块和Memory Profiler - 单次尖刺是否偶发,平均值是否真的下降:用
Profile Analyzer比较多帧数据
3. 最后做回归验证
同一台设备、同一画质、同一路径下对比优化前后,不然数据很容易失真。
图里的重点怎么读
1. 能够远程真机调试、多模块集成、快速定位问题

着重掌握这几类分析工具,它们是日常使用频率最高的一组工具。
多模块协同

上面的截图更适合当“工具索引图”来看:
- 先确定你是要查 CPU、GPU 还是内存
- 再切到对应模块
- 如果要解释单帧发生了什么,就进入
Frame Debugger - 如果要比较两轮优化结果,就进入
Profile Analyzer
【注意】不要一上来就开所有分析项。GPU Profiler、深度采样、调用栈等功能都会带来额外开销,先用轻量模式缩小范围,再按需加深。