Unity Profiler 详细解析(一)

编程入门 行业动态 更新时间:2024-10-14 04:30:17

Unity Profiler <a href=https://www.elefans.com/category/jswz/34/1770261.html style=详细解析(一)"/>

Unity Profiler 详细解析(一)

Overview:

. Profiler简介
. Profiler各模块介绍
. 各平台下Profiler的使用
. 基于Profiler的优化定位
. Profiler的主要参数详解
. Profiler案例

Profiler简介

Profiler 是Unity中分析性能开销的工具
• 各种开销一览无遗
• 可跨平台使用(Web、PC、iOS、Android、WP)
• 只有Unity Pro版本才开启该功能

Profiler各模块介绍

Profiler 包含6块内容的分析
• CPU Usage
• GPU Usage
• Memory
• Rendering
• Audio
• Physics

• Unity 4.1 版更新内容
• 提供更细节的Memory分析
• 可通过IP地址来监视游戏的运行状况
• Unity 4.2 版更新内容
• 对象引用关系的显示

Profiler各模块介绍

*********************CPU Usage********************

1. 主要函数调用的CPU时间开销 : (1)

1.1.最耗时的操作会显示在Hierarchy面板的最上方 (2)

2. Mono分配内存的情况 :

2. 1. 在GC Alloc栏 (3)

3. Profiler可以自定义需要统计的代码块

3.1. 使用Profiler.BeginSample 和 Profiler.EndSample

4. Deep Profiling

4.1 同样使用之前的代码作为例子,在开启Deep Profiling后Profiler里的内容变得更为详细

*********************GPU Usage********************

1. 统计Drawcall的数量及耗费时间

2. Profiler中Drawcall是广义上的Drawcall,包含:

2. 1.GPU Stage切换
2. 2. Clear操作
2. 3.将顶点数据传输到GPU的开销
2. 4. 绘制调用(狭义上的Drawcall)
2. 5. Rendering模块和Game Statistics里统计的是这种Drawcall

3. Memory Profiler

3.1 查看内存使用细节
3.1.1 点击 可看各种资源内存占用的情况
31.2 点击后,获得当前内存情况。
3.2 内存引用关系图
3.2.1 可以观察到一个对象在哪里被引用,利于检测内存泄露

各平台下Profiler的使用

*********************Editor*******************

1. 在Window/Profiler菜单下可打开Profiler窗口

2. 如果在编辑器下运行游戏,可直接看到Profiler信息

3. 一些常用的操作

3.1Recored 记录或暂停
3.2 Deep Profile 深度Profiling,分析更多细节
3.3Profile Editor 是否记录Editor相关的开销
3.4Active Profiler 激活指定的目标进行Profiling
3.5Clear 清空已有的Profiler信息
3.6Frame 帧

*********************针对发布的程序做Profiling*******************

  1. 勾选”Development Build”和”Autoconnect Profiler”选项

2.如果发布的程序在本机上执行,Profiler会自动连接;

3.如果在其他机器上执行,需要在Active Profiler处输入IP进行连接。

4. Profiler连接目标平台所使用的端口

• MulticastPort : 54998
• ListenPorts : 55000 - 55511
• Multicast(unittests) : 55512 - 56023

5. IOS/Android设备

• 在Unity的Building Setting中勾选Autoconnect Profiler及Development Build
• 发布游戏到目标设备
• 连接目标设备到Wifi网络,需要和运行Editor的PC在一个Wifi网段
• 运行设备上的游戏
• 在Editor的Profiler(Active Profiler)里输入设备的IP,进行远程连接
• 连接上后即可在Editor的Profiler窗口中查看Profiling的信息

*************在各个平台上做Profiling的注意事项**************

  1. 做Profiling时需要应用程序获得焦点

2. 如果自动连接不生效,请尝试手动设置IP连接,使用Active Profiler

3. 发布时勾上Development Build和Autoconnect Profiler


基于Profiler的优化定位

1. Pareto Analysis 帕累托分析法

1.1 20%的函数通常导致了 的性能问题

1.2 使用编辑器 来得到最有问题的函数调用,并且在第一时间优化它们

2. Profiler.BeginSample()/Profiler.EndSample()

2.1更加清楚地分析函数中的各个部分

3. Debug.Log

3.1 Debug.Log("Hello"); //输出字符串到控制台

3.1 Debug.Log("Hello",gameObject); //关联对象gameobject

更多推荐

Unity Profiler 详细解析(一)

本文发布于:2023-12-05 22:22:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1665502.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:详细   Unity   Profiler

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!