Unity(2022.3.38LTS) - 性能分析器

目录

一. 简介

二. 打开分析器

1. 打开

2.在目标平台上分析应用程序

三. 分析分析器

四. 模块详细介绍

1.Asset Loading Profiler 模块

2.Audio Profiler 模块

3.CPU Usage Profiler 模块

4.File Access Profiler 模块

5.Global Illumination Profiler 模块

6.GPU Usage Profiler 模块

7.Memory Profiler 模块

8.Physics Profiler 模块

9.Physics 2D Profiler 模块

10.Rendering Profiler 模块

11.UI 和 UI 详细信息探查器

12.Video Profiler 模块

13.Virtual Texturing Profiler 模块

五. 总结



一. 简介

在 Unity 中,性能分析器(Profiler)是一个非常强大的工具,用于分析和优化游戏的性能。以下是关于 Unity 性能分析器的一些重要信息:

1、作用

  1. 检测性能瓶颈

    • 可以帮助你确定游戏在运行时哪些部分消耗了大量的资源,如 CPU、GPU、内存等。通过分析这些数据,你可以找出性能瓶颈所在,并针对性地进行优化。
    • 例如,如果发现 CPU 使用率过高,可能是某个脚本的计算过于复杂或者频繁调用导致的;如果 GPU 使用率过高,可能是过多的复杂材质、高分辨率纹理或者大量的渲染批次等原因引起的。
  2. 优化游戏性能

    • 性能分析器提供了详细的性能数据,使你能够了解游戏的各个方面的性能表现。你可以根据这些数据进行优化,提高游戏的帧率和响应速度。
    • 比如,通过减少不必要的渲染操作、优化脚本逻辑、降低纹理分辨率等方式来降低资源消耗,提高游戏性能。
  3. 实时监测

    • 在游戏运行过程中,性能分析器可以实时显示各种性能指标,让你可以随时观察游戏的性能变化。这对于在开发过程中快速发现和解决性能问题非常有帮助。

2、注意事项

  1. 性能分析应在实际设备上进行

    • 虽然在编辑器中可以使用性能分析器进行初步分析,但为了获得更准确的性能数据,最好在实际的目标设备上进行性能分析。不同的设备可能有不同的性能特点和限制,因此在实际设备上进行测试可以更好地了解游戏在真实环境中的性能表现。
  2. 结合其他工具进行分析

    • 性能分析器只是一个工具,有时候还需要结合其他工具来全面了解游戏的性能。例如,可以使用 GPU 分析工具来深入了解 GPU 的性能问题,或者使用内存分析工具来检查内存泄漏等问题。
  3. 持续优化

    • 性能优化是一个持续的过程,随着游戏的开发和更新,可能会出现新的性能问题。因此,定期使用性能分析器进行性能监测和优化是很重要的,以确保游戏始终保持良好的性能。

二. 打开分析器

1. 打开

窗口 -> 分析 -> 分析器

页面展示

2.在目标平台上分析应用程序

在构建设置页面,勾选上开发构建,再勾选上自动连接探查器.

启用 自动连接探查器 设置后,Unity 编辑器会在构建过程中将其 IP 地址烘焙到构建的播放器中。当您启动播放器时,它会尝试连接到位于烘焙 IP 地址的编辑器中的分析器。

如果另外启用 深度分析迟滞 设置,Unity 将在构建的 Player 启动时执行 深度分析,这意味着 Profiler 会分析代码的每个部分,而不仅仅是明确包装在 性能分析标记 中的代码计时。这对于获取有关应用程序启动时间的深度分析信息非常有用,但是,这会给您的构建增加少量开销

启动游戏的时候,就会自动连接上分析器.

也可以通过 IP 地址连接到设备.

网页版也可以

选择输入IP

就可以了.

   ps: 我是另起了一个服务,就可以了.注意ip地址

三. 分析分析器

选择运行模式

启动unity编辑器,就可以看到

性能分析器模块

Profiler 模块功能
CPU 使用率显示应用程序在物理、脚本、动画和垃圾回收等领域花费最多时间的概述。此模块包含有关应用程序的广泛分析信息,您可以使用它来决定使用哪些其他模块来调查应用程序中的更具体问题。即使您关闭此模块,它也始终处于活动状态。
GPU 使用情况显示与图形处理相关的信息。默认情况下,此模块不处于活动状态,因为它具有很高的开销。
渲染显示有关 Unity 如何在应用程序中呈现图形的信息,包括有关静态和动态批处理
、SetPass 和 Draw 调用、三角形和顶点。
记忆显示有关 Unity 如何在应用程序中分配内存的信息。这对于查看脚本分配 (GC.Alloc) 导致垃圾回收,或者您的应用程序的资产内存使用量如何随时间变化。
音频显示与应用程序中的音频相关的信息,例如时间和数量音频源
play,音频系统需要多少 CPU 使用率,以及 Unity 为其分配多少内存。
视频在应用程序中显示与视频相关的信息。
物理显示有关应用程序中的物理场的信息,该物理场物理引擎
已处理。
物理 (2D)与 Physics Profiler 模块类似,此模块显示有关物理引擎在应用程序中处理 2D 物理的位置的信息。
用户界面显示有关 Unity 如何处理应用程序的 UI 批处理的信息,包括 Unity 批处理项的原因和方式。
UI 详细信息与 UI 模块类似,此模块的图表添加了有关批处理和顶点计数的数据,以及包含触发 UI 更改的用户输入事件信息的标记
全局照明显示有关 Unity 在应用程序中的 Global Illumination 照明子系统上花费的 CPU 资源的信息。
虚拟纹理显示有关应用程序中流式虚拟纹理的统计信息。
资产加载显示有关应用程序如何加载资源的信息。
文件访问显示有关应用程序中的文件访问的信息。

四. 模块详细介绍

首先启动全部模块

1.Asset Loading Profiler 模块

资产加载分析器
模块显示有关应用程序如何加载资产的信息,包括按区域划分的读取操作细分。详细信息窗格提供了对在配置文件期间捕获的每个资产加载标记的见解。

图表描述
其他读物从未指定子系统的 AsyncReadManager 请求的字节数。
纹理读取从 AsyncReadManager 请求的用于纹理加载的字节数。
虚拟纹理读取从 AsyncReadManager 请求的字节数,用于虚拟纹理。
网格读取从 AsyncReadManager 请求的字节数网孔
负荷。
音频朗读从 AsyncReadManager 请求的用于音频加载的字节数。
脚本读取通过脚本 API 从 AsyncReadManager 请求的字节数。
实体读取从 AsyncReadManager 请求的字节数脚本
在 Entities 包中。

2.Audio Profiler 模块

音频分析器
模块监控应用程序中音频系统的性能,例如总负载和语音计数

简单视图的详细信息表

数据描述
音频源总数总数音频源
在场景中。
播放音频源场景中播放的音频源总数
暂停的音频源场景中暂停的音频源的总数。
音频剪辑计数总数音频剪辑
在场景中。
音频语音项目使用的音频通道(FMOD 通道)总数。
音频 CPU 总数音频使用的 CPU 总量。
DSP 中央处理器您的项目通过混合使用的 CPU 量,音频效果
,以及解压缩具有“内存中压缩”加载类型的非流式声音。这不包括 Unity 在后台解码的声音所需的 CPU,其加载类型为“加载时解压缩”,并选中了“加载在后台”标志。
流式 CPU项目用于在应用程序中流式传输音频的 CPU 量。
其他 CPU上述未涵盖的一般 CPU 开销。
总音频内存音频在项目中使用的内存量。
流文件内存加载类型为“流式处理”的音频文件在逐步从磁盘读取压缩音频数据时用于短期缓冲的内存量。
流式解码内存加载类型为 Streaming 的音频文件用于缓冲解码的样本流的内存量。
样本声音记忆加载类型为“卸载时解压缩”的音频文件用于解压缩的样本数据的内存量。

注意:Unity 会汇集音频系统分配的内存,并且它会不断增长,直到在应用程序的运行时间内达到饱和。音频系统在内部重用分配的内存,该内存在运行时无法压缩。
其他内存由音频系统中的各种子系统引起的开销。

3.CPU Usage Profiler 模块

类别描述
渲染应用程序在渲染图形上花费的时间。
脚本应用程序在运行脚本上花费的时间。
物理您的应用程序在物理引擎
.
动画应用程序在对 Skinned 进行动画处理上花费的时间网孔
渲染器,游戏对象
以及应用程序中的其他组件。这还包括花在系统计算上的时间:动画和Animator 组件
用。
垃圾收集器应用程序在运行垃圾回收器上花费的时间。
VSync的应用程序每帧等待 targetFrameRate 或下一个帧所花费的时间VBlank
以同步。这是根据 QualitySettings.vSyncCount 值、目标帧速率或 VSync 设置得出的,该设置是运行应用程序的平台的默认或强制最大值。有关 VSync 的详细信息,请参阅本文档中有关呈现和 VSync 示例的部分。
全局照明应用程序在照明上花费的时间。
用户界面应用程序在显示其 UI 上花费的时间。
别人应用程序在不属于任何其他类别的代码上花费了多少时间。这包括整个 EditorLoop 等区域,或者在编辑器中分析播放模式时的分析开销。

4.File Access Profiler 模块

文件访问分析器
模块显示有关应用程序中文件活动的信息,

图表描述
打开的文件此帧在本地文件系统中成功打开的文件总数。
已关闭的文件此帧中成功关闭的本地文件系统中的文件总数。
文件查找在此帧的本地文件系统中执行的文件查找操作数。文件查找操作涉及对文件内容的搜索。
飞行中读取在此帧期间正在进行的读取操作总数。
文件句柄打开在此帧期间任何时间保持打开状态的文件句柄总数。这包括 Unity 在同一帧内打开和关闭的文件。

5.Global Illumination Profiler 模块

Global Illumination Profiler 模块的图表跟踪全局照明子系统在所有工作线程上花费的时间。

图表描述
光探针更新所花费的时间光照探针
.
设置在设置阶段花费的时间。
环境处理环境照明所花费的时间。
输入照明处理输入照明所花费的时间。
系统更新系统所花费的时间。
解决任务运行光能传递求解器任务所花费的时间。
动态对象更新动态所花费的时间游戏对象
.
其他命令更新其他命令所花费的时间。
阻止命令写入在阻止状态下等待命令缓冲区所花费的时间。

6.GPU Usage Profiler 模块

显示应用程序在 GPU 中花费时间的位置。

图表类别描述
不透明内置渲染管线渲染不透明对象的时间
透明内置渲染管线渲染透明对象的时间
阴影/深度内置渲染管线渲染阴影贴图的时间
延迟照明内置延迟渲染管线的光照时间。
后处理内置渲染管线处理后处理效果的时间。
其他处理其他事情(例如可编写脚本的渲染管道)的渲染时间

7.Memory Profiler 模块

分析应用程序中的内存使用情况

类别描述
分配总数应用程序已使用的总内存。
纹理记忆有多少内存纹理
在您的应用程序中已经使用过。
网孔
记忆
应用程序中的网络使用了多少内存。
材料计数的数量材料
应用程序中的实例。
对象计数应用程序中的本机对象实例数。
GC 已用内存GC 堆已使用的内存量。
在帧中分配的 GCGC 堆上每帧分配的内存量。

8.Physics Profiler 模块

显示有关物理系统在项目的数据

图表功能
物理 使用的内存物理模块已使用的内存总量
主动动力体的数量刚体
组件和 ArticulationBody 未处于睡眠状态的组件。
主动运动体活动运动刚体组件的数量。当在帧中调用 MovePosition 或 MoveRotation 时,运动学刚体处于活动状态,并在下一帧中保持活动状态。

注意:Unity 可能会处理每帧多次连接关节的运动学刚体组件,这有助于显示值。
动态体“刚体”(Rigidbody) 组件和“关节体”(ArticulationBody) 组件的数量。
重叠重叠事件的数量。重叠事件是当对撞机
彼此重叠。
触发器重叠与触发器碰撞体的重叠事件数(成对计数)。
离散重叠Unity 使用离散的重叠事件数碰撞
检测解决。
连续重叠Unity 连续使用的重叠事件数碰撞检测
来解决。
物理查询物理查询的总量,例如光线投射和形状投射。

9.Physics 2D Profiler 模块

显示有关2D物理系统在项目的数据

图表描述
联系人总数此帧中存在的联系人总数。这包括两者碰撞
和触发触点。处理和解决联系人可能很耗时,因此应将其保持在最低限度。
形状总数此帧中存在的物理形状的总数。不同的 Collider2D 产生不同数量的物理形状,范围从一种到无限种。您可以获取形状计数检索物理形状,以确定任何 Collider2D 的形状。
查询总数称为此帧的查询总数。这包括 Physics2D.RaycastPhysics2D.OverlapPoint 等查询。
回调总数在此帧中调用的 OnCollisionEnter2DOnCollisionStay2DOnCollisionExit2DOnTriggerEnter2DOnTriggerStay2D 和 OnTriggerExit2D 回调的总数。
关节此帧中存在的任何 Joint2D 的总数。
全身此帧中存在的 Rigidbody2D 的总数。
清醒的身体在此帧中处于唤醒状态(未处于睡眠状态)且存在的 Rigidbody2D 的总数。
动态体具有动态的 Rigidbody2D 的总数 体型
出现在这个框架中。在所有身体类型中,动态身体需要最多的处理,因此它们应该保持在最低限度。
连续体具有连续的 Rigidbody2D 的总数 碰撞检测
此帧中存在的模式。连续体比使用时要贵得多离散碰撞检测
模式,因此它们应保持在最低限度。
物理 使用的内存2D 物理系统独占使用的持久内存总量。这包括核心引擎和每个物理组件使用的内存,但不包括此帧中使用的临时内存。

10.Rendering Profiler 模块

效果图分析器显示渲染统计信息以及有关 CPU 和 GPU 执行哪些操作

图表描述
批次计数Unity 在一帧期间处理的批次数
SetPass 调用计数Unity 切换着色
传递它用于渲染游戏对象
在一帧中。着色器可能包含多个着色器通道,每个通道都会以不同的方式呈现场景中的游戏对象。
三角形计数Unity 在一帧期间处理的三角形数。
顶点计数Unity 在帧期间处理的顶点数。

11.UI 和 UI 详细信息探查器

用户界面和 UI 详细信息分析器模块提供有关 Unity 在应用程序中布局和渲染用户界面所花费的时间和资源的信息。

图表描述
UI Profiler 模块
布局Unity 在执行 UI 的布局通道时花费了多少时间。这包括由 HorizontalLayoutGroupVerticalLayoutGroup 和 GridLayoutGroup 完成的计算。
呈现UI 在执行其渲染部分时花费了多少时间。这是直接渲染到图形设备或渲染到主渲染队列的成本。
UI 详细信息配置文件模块
批次显示一起批处理的绘制调用总数。
顶点用于呈现 UI 部分的顶点总数。
标记显示事件标记。当用户与 UI 交互(例如,单击按钮或滑块值更改)时,Unity 会记录标记,然后将它们绘制为图表上的垂直线和标签。

12.Video Profiler 模块

视频分析器
模块显示有关应用程序中的视频正在使用的资源的信息,例如内存、缓冲和视频剪辑数量

图表描述
视频源总数您的视频源总数现场
.
播放视频源场景中播放的视频源的数量。
预缓冲帧预缓冲帧的总数。
总视频内存应用程序中的视频正在使用的系统内存量。

13.Virtual Texturing Profiler 模块

虚拟纹理分析器模块显示有关应用程序中流式虚拟纹理的统计信息

图表描述
必需的磁贴屏幕上可见的纹理图块的数量。这些是着色
尝试进行采样以渲染选定的帧。
最大缓存 Mip 偏置自动 mipmap 偏差应用于具有相同纹理的所有纹理纹理格式
.如果此值不为零,则缓存的大小不足以容纳该格式的所有可见切片。mipmap 偏差越高,纹理质量越低。
最大缓存需求选定帧中所有 GPU 缓存的最高缓存需求。
缺少流式处理磁贴在屏幕上可见但不在视频内存中的图块数。您的应用程序会从磁盘流式传输这些磁贴,或者尽快从主内存中复制它们。
丢失磁盘数据应用程序需要从磁盘读取的剩余数据(以字节为单位)以满足所选帧的要求。

五. 总结

以上就分析模块的介绍,想看更详细的建议去官网.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值