Wiki
815 words
4 minutes
性能分析工具是什么

这些工具是干什么的#

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

最常用的几类工具#

Unity Profiler#

入口工具。先看 CPU UsageRenderingGPU UsageMemory 这几个模块:

  • CPU Usage:看脚本、渲染、GC、物理等主要耗时
  • Rendering:看 batches、SetPass、triangles、vertices
  • GPU Usage:判断是否 GPU-bound
  • Memory:先看整体趋势和分配变化

Frame Debugger#

当你已经确认“问题在渲染提交或某个渲染阶段”时,用它逐 draw call 回放一帧。它适合回答:

  • 为什么这一帧有这么多 Pass
  • 是谁打断了批处理
  • 哪个全屏效果或阴影阶段最重

Memory Profiler#

当问题是峰值内存、泄漏、资源常驻过高时,用快照看纹理、Mesh、Managed Heap、Native 内存占用结构,而不是只看总量数字。

Profile Analyzer#

当你要比较“优化前”和“优化后”是否真的稳定变好时,用它分析多帧 CPU 数据,而不是只盯着单帧峰值。

【重点】日常排查里,通常是 Profiler -> Frame Debugger / Memory Profiler -> Profile Analyzer 这样的组合,而不是一次只开一个工具。

真机调试为什么重要#

Editor 下的数据经常混入编辑器自身开销,很多渲染与内存问题也只会在目标设备上暴露。尤其是移动端,发热、降频、带宽、驱动行为都需要真机确认。

建议最少保留一套真机链路:

  • Development Build
  • Autoconnect 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、深度采样、调用栈等功能都会带来额外开销,先用轻量模式缩小范围,再按需加深。

性能分析工具是什么
https://fuwari.vercel.app/wiki/performance/profiling-tools/
Author
Qingswe
Published at
2025-12-01
License
CC BY-NC-SA 4.0