UPL2-1——顶部页签
UPL2-1——顶部页签
Unity Profiler 顶部页签

-
Profiler Modules 模块列表
我们可以在这里设置性能检测哪些模块,可以在这里通过勾选和取消勾选来进行选择

-
Highlights:高光区域,会把可能存在问题的帧高亮显示(仅 Unity 6 及以上版本)

-
CPU Usage:CPU 使用率
-
GPU Usage:GPU 使用率
-
Rendering:渲染相关
-
Memory:内存相关
-
Audio:音效相关
-
Video:视频相关
-
Physics:物理系统相关
-
UI:用户界面相关
-
UI Details:用户界面详细信息
-
Realtime GI:实时GI(光照相关)
-
Virtual Texturing:虚拟纹理
-
File Access:文件访问
-
AssetLoading:资源加载
-
左下角设置按钮中可以自定义布局,添加局部子系统的性能分析相关
-
Restore Defaults:恢复默认设置
-
-
性能分析目标与模式选择
选择进行性能分析所针对的目标

注意:
- 如果电脑上运行着通过开发者模式构建的应用程序 在此窗口中可能会直接显示可以连接调试的本地应用程序,直接进行选择即可
- 如果移动设备通过 USB 线连接着电脑,下方也会显示 Unity 能够调试的设备
-
Play Mode:播放运行模式下分析
-
Edit Mode:编辑模式下分析,可以对 Unity 编辑器进行性能分析
-
Direct Connection:定向链接 可以选择输入运行应用程序的设备IP进行远程调试(一般进行内网调试)
注意:需要在发布应用程序时选择:
- Development Build:开发模式构建
- Autoconnect Profiler:自动连接分析器(可选)
- Deep Profiling Support:深度分析支持(可选,可以获取更多信息)
-
数据录制按钮

- 录制按钮:启用后,可以在运行应用程序时记录活跃模块的性能分析信息;如果为启用,则不会搜集
- 前后移动一帧获取当前帧数据
- 当前帧按钮,启用后,会自动跳到记录的最后一帧,运行时,始终显示最后一帧信息
-
Frame 帧:当前帧/总帧数(性能分析工具在整个分析期间收集的总帧数)
-
Clear 清空按钮:清除 Profiler 窗口所有数据
-
Clear on Play 运行时清理: 启用后,下次运行时链接到目标设备时,性能调试窗口会擦除所有数据
-
Deep Profile 深度性能分析: 启用后会对所有 C# 方法进行性能分析
分析器会对脚本代码的每个部分进行性能分析,并记录所有函数调用,至少包括进入任何 Unity API 中的第一个调用栈深度。
注意:此信息可用于帮助您确定代码对应用程序性能的影响,但这会带来很大的开销
-
Call Stacks 调用堆栈:选择记录哪些用于脚本内存分配的调用栈

勾选后,会记录用于脚本内存分配的调用栈,性能分析器记录的帧包含所选样本在完整调用栈的信息;
即使在 Deep Profile 未激活的情况下,完整调用栈上的这些样本也会导致托管脚本分配,从而会对性能和GC有一定的影响-
GC.Alloc:Unity 的 托管内存分配(C# 层)
非常常见,几乎所有 C# 脚本开发中都会有
主要关注:减少堆内存分配,控制 GC 频率 -
UnsafeUtility.Malloc(Persistent):原生(非托管)内存分配函数(原生C++层) 比如图形 API、DOTS 系统中分配的一些内存
中等常见,原生容器、底层插件、DOTS中会出现
主要关注:留意资源是否释放 -
JobHandle.Complete:表示主线程阻塞等待某个 Job 完成;DOTS、ECS、Burst、Unity Physics、AnimationRigging 等系统中会出现
不常见:多线程任务系统中才会有
主要关注:除非使用了多线程任务系统,否则无需关心
-
-
读取,保存性能分析数据,帮助,其他设置

-
读取已保存的性能分析数据显示到性能分析窗口中
-
保存当前获取的性能分析数据
-
帮助(跳转到 Unity 官方使用手册)
-
其他选项

-
Show stats for “current” frame 是否显示当前帧(也就是正在录制的那一帧)的统计信息

-
Preferences 打开偏好设置菜单,具体内容在下文显示
-
-
Profiler 首选项

-
Frame Count:Profiler 保存的帧数(Frame)的最大数量
决定你可以在 Profiler 中向后查看多少帧的性能数据,超过这个数量的帧数据将被丢弃;
建议:改高一点,比如 600,以便查看更长历史数据 -
Show Stats for ‘current’ frame:是否显示当前帧(也就是正在录制的那一帧)的统计信息
建议:打开,方便试试观察

-
Default recording state:Unity 启动后或进入 Play 模式时,Profiler 是否默认开始记录
建议:Enabled,方便自动录制
-
Default editor target mode on start:Unity 编辑器启动后,Profiler 默认分析哪个目标
建议:Play Mode,因为更多是对项目进行调试,编辑器拓展一般很少遇到性能问题

-
Custom connection ID:用于标识设备连接的 ID,适用于远程 Profiler 连接,用于设置连接到特定设备或进程时使用的标识名
比如:可以通过代码在设备端设置 ID:
Profiler.SetConnectionIdentifier("MyDevice1");
然后在这里填写MyDevice1号,Unity 就会优先连接这个 ID 的设备 -
Target Frames Per Second (Highlights Module):Highlights 模块的目标帧率(仅 Unity 6 及以上版本)
Profiler 中的 Highlights 模块 会以这个帧率为基准进行性能表现分析(如掉帧)。
设置为 60 表示以 60 FPS 为目标; 建议:设置为调试的目标设备的理想帧率,比如手机一般是 30 或 60,PC是 60 或 120 帧等
