Unity性能优化(二) 性能分析篇
性能优化的第一步是 收集数据,在 Unity 中我们有多种性能分析工具可供使用。下面简单介绍几个常用工具。
Unity Profiler:强大的性能分析工具
Unity Profiler是游戏开发中最常用的性能分析工具之一,它是Unity自带的功能。你可以通过顶部菜单栏的"Window > Analysis > Profiler"选项来打开该工具。
在游戏启动前或游戏过程中,点击Record按钮(红色的圆圈)即可开始性能测试。一旦开启性能测试,在你点击Profiler界面后,游戏运行将自动暂停,并在Profiler界面上绘制出性能数据曲线。
在Profiler界面中,Record按钮右侧有两个按钮,它们可以逐帧移动选定帧。右上角还有Save和Load按钮,用于保存和加载性能测试数据,方便后续分析。。
Unity Profiler提供了多种性能选项,如CPU使用率(CPU Usage)、内存占用(Memory)、GPU使用率('GPU Usage)等。只需选择相应的选项,即可在下方窗口查看对应性能的细节数据。
点击CPU Usage选项,将展示CPU数据时间线的细节,当前选中帧的范围会高亮显示。通过滚动鼠标滚轮,可以放大或缩小时间线范围。
在下方窗口的Timeline视图下拉菜单中,还可以切换到"Hierarchy"和"Raw Hierarchy"视图。在"Hierarchy"视图中,可以查看选定帧的函数调用堆栈(CallStack),确认函数调用的耗时、GC Alloc等信息。
如果需要查看GPU相关信息,只需点击GPU Usage选项。若发现GPU Usage选项未显示,可以确认Profiler左上角的Profiler Modules是否开启了GPU功能。
Frame Debugger:调试渲染性能的利器
Frame Debugger是另一个常用的性能分析工具,它能够查看某一帧的渲染过程。同样地,Unity自带该工具,只需在顶部菜单栏选择"Window > Analysis > Frame Debugger"即可打开。
在游戏运行中,点击Frame Debugger的Enable按钮,游戏将自动暂停,并在界面中展示当前帧的渲染顺序。
选中某一渲染步骤后,界面右侧将显示该步骤使用的Shader以及Shader属性等详细信息。同时,Game视图中也会展示该步骤渲染的结果。
Frame Debugger在优化DrawCall和调试Shader时非常有用。
Profile Analyzer:深入分析性能数据
Profile Analyzer是另一个强大的性能分析工具,它支持查看一段时间内的性能分析数据。标准的Profiler只能查看单帧的数据,而Profile Analyzer能够帮助开发者对一段时间内的性能数据进行更深入的分析。
要使用Profile Analyzer,首先需要通过Package Manager安装该工具。然后,在顶部菜单栏选择"Window > Analysis > Profile Analyzer"来打开它。
使用Profile Analyzer时,首先在Profiler中记录一段时间的性能数据信息。然后,点击Profile Analyzer的"Pull Data"按钮,将记录的性能数据导入到Profile Analyzer中。
在Profile Analyzer的曲线图中,你可以通过拖动选定要分析的范围。它提供了该范围内的进程、耗时以及记录点的概况。对于某个特定记录点,你还可以查看它在该范围内的耗时信息和出现的帧数等。
另外,Profile Analyzer还提供了"Compare"模式,让你可以对比两段性能数据,帮助进一步优化性能。
你可以分别通过 Pull Data 即时抓取两段性能数据,或是通过 Save按钮 准备好两份性能数据再通过 Load按钮 进来。这时 Profile Analyzer 提供的信息就带上了两段性能数据的对比。