UPL2-1——顶部页签

Unity Profiler 顶部页签

image

  1. Profiler Modules 模块列表

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

    image

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

      image

    • CPU Usage:CPU 使用率

    • GPU Usage:GPU 使用率

    • Rendering:渲染相关

    • Memory:内存相关

    • Audio:音效相关

    • Video:视频相关

    • Physics:物理系统相关

    • UI:用户界面相关

    • UI Details:用户界面详细信息

    • Realtime GI:实时GI(光照相关)

    • Virtual Texturing:虚拟纹理

    • File Access:文件访问

    • AssetLoading:资源加载

    • 左下角设置按钮中可以自定义布局,添加局部子系统的性能分析相关

    • Restore Defaults:恢复默认设置

  2. 性能分析目标与模式选择

    选择进行性能分析所针对的目标

    image

    注意:

    1. 如果电脑上运行着通过开发者模式构建的应用程序 在此窗口中可能会直接显示可以连接调试的本地应用程序,直接进行选择即可
    2. 如果移动设备通过 USB 线连接着电脑,下方也会显示 Unity 能够调试的设备
    • Play Mode:播放运行模式下分析

    • Edit Mode:编辑模式下分析,可以对 Unity 编辑器进行性能分析

    • Direct Connection:定向链接 可以选择输入运行应用程序的设备IP进行远程调试(一般进行内网调试)

      注意:需要在发布应用程序时选择:

      • Development Build:开发模式构建
      • Autoconnect Profiler:自动连接分析器(可选)
      • Deep Profiling Support:深度分析支持(可选,可以获取更多信息)
  3. 数据录制按钮

    image

    • 录制按钮:启用后,可以在运行应用程序时记录活跃模块的性能分析信息;如果为启用,则不会搜集
    • 前后移动一帧获取当前帧数据
    • 当前帧按钮,启用后,会自动跳到记录的最后一帧,运行时,始终显示最后一帧信息
  4. Frame 帧:当前帧/总帧数(性能分析工具在整个分析期间收集的总帧数)

  5. Clear 清空按钮:清除 Profiler 窗口所有数据

  6. Clear on Play 运行时清理: 启用后,下次运行时链接到目标设备时,性能调试窗口会擦除所有数据

  7. Deep Profile 深度性能分析: 启用后会对所有 C# 方法进行性能分析

    分析器会对脚本代码的每个部分进行性能分析,并记录所有函数调用,至少包括进入任何 Unity API 中的第一个调用栈深度。

    注意:此信息可用于帮助您确定代码对应用程序性能的影响,但这会带来很大的开销

  8. Call Stacks 调用堆栈:选择记录哪些用于脚本内存分配的调用栈

    image

    勾选后,会记录用于脚本内存分配的调用栈,性能分析器记录的帧包含所选样本在完整调用栈的信息;
    即使在 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 等系统中会出现

      不常见:多线程任务系统中才会有
      主要关注:除非使用了多线程任务系统,否则无需关心

  9. 读取,保存性能分析数据,帮助,其他设置

    image

    • 读取已保存的性能分析数据显示到性能分析窗口中

    • 保存当前获取的性能分析数据

    • 帮助(跳转到 Unity 官方使用手册)​

    • 其他选项

      image

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

        image

      • Preferences 打开偏好设置菜单,具体内容在下文显示

Profiler 首选项

image

  • Frame Count:Profiler 保存的帧数(Frame)的最大数量

    决定你可以在 Profiler 中向后查看多少帧的性能数据,超过这个数量的帧数据将被丢弃;
    建议:改高一点,比如 600,以便查看更长历史数据

  • Show Stats for ‘current’ frame:是否显示当前帧(也就是正在录制的那一帧)的统计信息

    建议:打开,方便试试观察

    image

  • Default recording state:Unity 启动后或进入 Play 模式时,Profiler 是否默认开始记录

    建议:Enabled,方便自动录制

  • Default editor target mode on start:Unity 编辑器启动后,Profiler 默认分析哪个目标

    建议:Play Mode,因为更多是对项目进行调试,编辑器拓展一般很少遇到性能问题

    image

  • 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 帧等