当前位置: 代码网 > 科技>人工智能 > Unity性能优化工具介绍

Unity性能优化工具介绍

2024年08月01日 人工智能 我要评论
本文介绍了两种Unity自带的性能分析组件.


一.stats组件

unity自带statistics(统计数据),game视窗中点击stats打开
在这里插入图片描述

1.audio音频的数据组件:

在这里插入图片描述

1):level 声音强度
单位是分贝(db) 表示音频听声音的大小,是闪烁波动的.

2):sdpload 数据信息负载
数字信号处理的负载 播放的音频越多,越复杂,声音的采样就或高.避免负载或高.

3):clipping 音频裁剪
音频裁剪情况.当音频信息超过设备支持的最大范围后,该音频信息会被裁剪.坐而会有有一定程度的失真.

4):staram load 流式负载
表示音频采用流式加载的负载情况,即边听边下载情况下的音频的负载情况.

2.图形数据

在这里插入图片描述

1):fps 帧率
表示1秒内播放的的画面的数量,用于判断画面的流畅度.一般60以上为流畅.45以上为比较流畅,30以下则会开始会有卡顿感.
这个数值不是越高越好,太高容易导致显卡发热.

2):cpu 单帧处理时长
表示cpu处理一帧所用的时间.
例如: cpu main0.7ms render thread 0.7ms 主线程花费0.7毫秒(主线程主要负责游戏逻辑的更新,用户输入,对像更新,碰撞检测等.)
渲染线程花费0.7毫秒 渲染线程负责显示游戏画面.

3):batches调用绘制批次数
即cpu调用绘制(draw call)的批次数,应该尽量避免过大.

4):saved by batching 被合并次数
有多少个draw call合并到了指次 , 此数据越大表示优化的越好.

5):tris 面数
triangle(三角形)当前帧射线机内三角型数量

6):verts
vertex(顶点)当前帧射线机内顶点数量

7):screen 屏幕
当前屏幕的分辨率及内存,应当避免此数据太大.

8):setpass calls 切换着色器通道次数
渲染中一个shader可以包含多个角色器通关(shader pass) , 角色器通道切换会有一定性能消耗.应该避免此数据过大.

9):shadow casters 产生阴影数量
画面中有多少个对像产生了阴影.同一对像也可能多次产生阴影.应尽量避免此数据过大.

10):visible skinned meshes 可见蒙皮网格
可以见范围内,蒙皮网格的数量

11):animation components playing
当前播放的animation数量

12):animatior components playing
当前播放的animator数量
在这里插入图片描述

使用代码unitystats.可以动态查看以上数据


二.profiler 性能分析器

1.通过菜单栏window > analysis > profiler 打开
在这里插入图片描述

2.这里我们可以看到窗口分为,cpu rendering memory 等信息…
我们可以通过profiler modules 选择需要收集信息的模块
在这里插入图片描述

3.这里可以看查总收集帧数 和 当前查看帧数.用帧数控制可以操控上一帧,下一帧,及最后一帧.
在这里插入图片描述

4.当点击某个模块某帧时,左边对应颜色数值会显示对应消耗的量
在这里插入图片描述

5.下面的窗口也可以查看当前帧的详细信息
在这里插入图片描述

6.当重新开始收集时,需要点击clear新空之前收集的帧数.否则将会从之前收集的帧数后面开始继续收集资料.
在这里插入图片描述

7.收集模式,通常选择playmode,再游戏开始运行后点击小圆圈开始录制.
在这里插入图片描述

8.点击clear on play按钮可以每次开始运行时自动清空上次运行的数据
9.点击窗口右上解的保存按钮可以导出文件记录本次收集到的信息
10.点击窗口右上解的导入按钮可以导入,文件记录的收集到的信息
11.点击deep profile性能以收集自身编辑方法所消耗的性能
在这里插入图片描述

选择hierarchy窗口,在右边栏搜索框中也可以搜索对应的方法查看.
totle : 当前方法占用当前模块总消耗量的百分比
self : 当前模块占自身代码占用的性能
calls : 被掉用的次数
gc alloc : gc allocation 垃圾回收机制,分陪了多少内存
time ms : 用了多少时间执行这个方法
self ms : 执行自身代码用的时间

在性能分析中,以下是调用了自身和别人的代码的边别.
在这里插入图片描述

12.使用profiler.beginsample及endsample查看局部代码性能
在这里插入图片描述

在profiler中搜索这个名字就能查看此段代码所消耗的性能.
在这里插入图片描述

13.unity官方文档中可以查看更详细的内容
https://docs.unity3d.com/cn/current/manual/profilerwindow.html

14.调用栈callstatcks
调用栈是计算机在执行过程中记录调用的一种数据结构.
以先进后出的的顺序记录每个函数被调用情况.
在这里插入图片描述
勾选后可以在下面搜索内容.
gc.alloc表示gc的内存分配情况
unsafeutility.malloc用于在内存中分配未初始模块.只有在处理非托管内存的特定才场景下才会用到
jobhandle.complete.这里是完成job system的特定任务.

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com