Unity(2022.3.38LTS) - 性能分析器

news2024/11/15 21:31:41

目录

一. 简介

二. 打开分析器

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.Raycast、Physics2D.OverlapPoint 等查询。
回调总数在此帧中调用的 OnCollisionEnter2D、OnCollisionStay2D、OnCollisionExit2D、OnTriggerEnter2D、OnTriggerStay2D 和 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 的布局通道时花费了多少时间。这包括由 HorizontalLayoutGroup、VerticalLayoutGroup 和 GridLayoutGroup 完成的计算。
呈现UI 在执行其渲染部分时花费了多少时间。这是直接渲染到图形设备或渲染到主渲染队列的成本。
UI 详细信息配置文件模块
批次显示一起批处理的绘制调用总数。
顶点用于呈现 UI 部分的顶点总数。
标记显示事件标记。当用户与 UI 交互(例如,单击按钮或滑块值更改)时,Unity 会记录标记,然后将它们绘制为图表上的垂直线和标签。

12.Video Profiler 模块

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

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

13.Virtual Texturing Profiler 模块

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

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

五. 总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程任务中设置MDC的实践

多线程任务中设置MDC的实践 引言 在当今的软件开发中,日志记录是不可或缺的一部分。日志不仅仅是调试工具,还在系统监控、性能分析、故障排除中扮演着关键角色。尤其在多线程环境中,日志的上下文信息一致性至关重要。MDC(Mapped…

WPF 动画 插值动画、关键帧动画、路径动画

WPF动画,分为三种:插值动画、关键帧动画、路径动画 2.1 插值动画:     1)定义:插值动画是指,属性值从某一个值,经过一段时间后,连续变化值另一个值的动画。         例…

订单到期关闭如何实现?

目录 一、被动关闭 二、定时任务 三、JDK自带的DelayQueue 四、Netty的时间轮 五、Kafka的时间轮 六、RocketMQ延迟消息 七、RabbitMQ死信队列 八、RabbitMQ插件 九、Redis过期监听 十、Redis的Zset 十一、Redisson 在电商、支付等系统中,一般都是先创建…

win/mac数字资产管理软件Adobe Bridge (BR)软件下载安装

目录 一、Adobe BR软件介绍 1.1 软件概述 1.2 主要功能 1.3 系统要求 二、Adobe BR安装步骤 2.1 下载软件 2.2 安装前准备 2.3 安装过程 三、Adobe BR使用教程 3.1 基础操作 3.1.1 浏览与预览 3.1.2 搜索与筛选 3.1.3 批量操作 3.2 进阶功能 3.2.1 元数据管理 …

鸿蒙OS高级应用开发例题

44项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEco Studio中设置不同的构建配置,达成这个目的 A. 在模块级别buld-pronlejson5定义两个target;将两个target的bundleType分别设置…

8.20模拟赛题解

简单点评一下 整体上来看 ,A题拿满分的同学可能占一半吧 ,这个数据其实是不太理想的 ,说明同学们对于思维模拟题还是不熟练,没抓住题目要分析的本质。 B题显然是保证有解的,有解的情况下问最优解,说明翻到满…

动力电池系统面向开发的测试——电池阻抗特性测试(下)

接动力电池系统面向开发的测试——开路电压测试(上)本文主要围绕BMS设计中的等效电路模型第二大动态特性参数——阻抗特性及测试内容来展开分享。 阻抗特性测试方法: 方案1:直流脉冲测试 前面在分享功率评估内容的时候&#xf…

【正点原子K210连载】第三十二章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第三十二章 音频FFT实验 本章将介绍CanMV下FFT的应用,通过将时域采集到的音频数据通过FFT为频域。通过本章的学习,读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节: 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…

How can OpenAI Gym‘s visualizations work within Docker?

题意:OpenAI Gym 的可视化功能如何在 Docker 中运行? 问题背景: Id like to get OpenAI Gym working with the rendered OpenGL visualizations within a docker container. 我想在 Docker 容器中让 OpenAI Gym 与渲染的 OpenGL 可视化一起…

数据通信基础

信道特性 信道带宽 W 模拟信道:WF max - F min (信道最大频率减去最小频率,单位Hz) 数字信道:数字信道是离散信道,带宽为信道能够达到的最大数据传输速率,单位bit/s 奈奎斯定理(理…

IOy系列BL196MQTT远程IO模块智能农业灌溉水质监测

随着农业科技的进步和智能农业的发展,传统的灌溉和水质管理方式正逐渐被更为高效和智能的解决方案所取代。在智能农业系统中,水质监测作为灌溉管理的关键环节,对保障作物健康和提高水资源利用效率具有重要作用。 IOy系列BL196 MQTT远程IO模块…

第七届机械、控制与计算机工程国际学术会议(ICMCCE2024)

第七届机械、控制与计算机工程国际学术会议定于2024年10月25日至27日在中国杭州召开。本届会议由巢湖学院主办,主要围绕“机械”、“控制”与“计算机工程”等研究领域展开讨论。旨在为机械、控制与计算机工程方面的专家学者及企业发展人提供一个分享研究成果、讨论…

iML6602是一款60W立体声Class-D音频功率放大器集成电路

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备,其重建的信号音量和功率级都要理想:如实、有效且失真低。音频范围为约20Hz~20000Hz,因此放大器在此范围内必须有良好的频率响应(驱动频带受限的扬声器时要…

Flink常见数据源使用教程(DataStream API)

前言 一个 Flink 程序,其实就是对 DataStream 的各种转换。具体来说,代码基本上都由以下几部分构成,如下图所示: 获取执行环境(execution environment)读取数据源(source)定义基于数据的转换操作(transformations)定义计算结果的输出位置(sink)触发程序执行(exec…

深度deepin v23系统也能玩《黑神话:悟空》 8GB内存、GTX 1660 Ti丝滑流畅

首款国产现象级3A游戏《黑神话:悟空》正式上线,有玩家将其比喻为“村里这么多年终于出个大学生了”…那么,在国产操作系统上可以畅玩《黑神话:悟空》吗?答案是肯定的。深度系统最新版本deepin v23就展示了一番。 当然&…

最短路径树,CF 1076D - Edge Deletion

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1076D - Edge Deletion 二、解题报告 1、思路分析 考虑dijkstra实际上是…

如何将MySQL迁移到TiDB,完成无缝业务切换?

当 MySQL 数据库的单表数据量达到了亿级,会发生什么? 这个现象表示公司的业务上了一个台阶,随着数据量的增加,公司规模也进一步扩大了,是非常喜人的一个改变 ,然而随之而来的其他变化,就没那么…

【踩坑】如何解锁微软“已暂时锁定你的帐户”

登录微软账号时候,提示:有人在使用此帐户时输入错误密码的次数过多。为了保证帐户安全,我们已暂时锁定你的帐户,请稍后再试。 进入以下网站重置密码即可: https://account.live.com/ResetPassword.aspx?mktzh-CN 登录…

什么是企业高性能web服务器,这一篇就够了

一.Web 服务基础介绍 正常情况下的单次web服务访问流程: 1.1 互联网发展历程回顾 1993年3月2日,中国科学院高能物理研究所租用AT&T公司的国际卫星信道建立的接入美国SLAC国家实 验室的64K专线正式开通,成为我国连入Internet的第一根专…

IMU用于受伤颈椎的角度监测

最近,一项由泰国科研团队开展的研究,创新性地应用了惯性测量单元(IMU)传感器,以评估和比较两种不同的颈椎固定技术——传统脊柱固定(TSI)和脊柱运动限制(SMR)——在院前急…