[Unity优化]UWA性能诊断与优化

[Unity优化]UWA性能诊断与优化


UWA直播笔记

UWA:UWA     视频

总体性能趋势

1、CPU性能占用

①项目运行过程中高于33ms的帧数占比推荐值<10%,高于50ms的帧数占比推荐值<5%。

2、GC调用

①调用频率 ( 帧/次 ):GC触发调用频率推荐值>1000帧/次,GC触发得越快,即项目运行时卡顿次数越多。

3、渲染模块性能

①Drawcall 峰值:项目中Draw Call峰值推荐值<200;

②Triangle 峰值:项目运行过程中渲染的三角形面片数量的最大值(推荐值<100000)。视域体内的模型数量越多、使用的Shader越复杂,则渲染的面片数越多。

4、物理模块性能

①CPU均值:物理引擎每帧的平均CPU耗时(推荐值<2ms,主体范围0~3ms)。对于Unity引擎而言,其4.x版本所使用的物理引擎为 Nvidia PhysX 2.8,报告中统计的是Physics.Simulate的CPU耗时;其5.x版本所使用的物理引擎为 Nvidia PhysX 3.3,报告中统计的是Physics,Simulate和Physics.Processing的CPU耗时总和。

②Contacts数量峰值:项目运行过程中碰撞对(Contact Pair)数量的最大值(推荐值<20)。所谓“碰撞对”,是指当前空间中发生碰撞的物体之间的接触点,每个“碰撞对”均连接两个相互产生碰撞的物体。一般来说,Contacts 数量越大,则表明碰撞物体的数量越多,即物理系统的CPU开销越大。

③静态碰撞体峰值:项目运行过程中静态碰撞体数量的最大值(推荐值<100)。“静态碰撞体”是指未挂载Rigidbody组件的碰撞体。

④动态碰撞体峰值:项目运行过程中动态碰撞体数量的最大值(推荐值<100)。“动态碰撞体”是指挂载了Rigidbody组件的碰撞体。

5、动画模块性能

①Animator.Update CPU均值:项目运行过程中Animator.Update每帧的平均CPU时间(推荐值< 2ms;主体范围0~3ms)。其对应的是Unity新动画系统Mecanim。

②Animation.Update CPU均值:项目运行过程中Animation.Update每帧的平均CPU时间(推荐值< 2ms;主体范围0~3ms)。其对应的是Unity 3.x动画系统。

③蒙皮网格更新CPU均值:项目运行过程中MeshSkinning.Update每帧的平均CPU时间(推荐值< 2ms;主体范围0~3ms)。

6、粒子系统性能

①ParticleSystem 更新CPU均值:项目运行过程中粒子系统更新的平均CPU耗时(推荐值< 2ms;主体范围0~3ms)。②ParticleSystem渲染CPU均值:项目运行过程中粒子系统渲染的平均CPU耗时(推荐值< 2ms;主体范围0~3ms)。

7、UI性能模块(动静分离)

①CPU 均值:UI模块平均每帧的CPU占用时间(推荐值< 3 ms;主体范围 0~5 ms)。

②堆内存分配总值:UI模块堆内存分配总体数值(推荐值< 30 MB)。堆内存分配越高,说明UI界面在制作和使用上优化空间越大。

③堆内存分配均值:UI模块平均每帧的堆内存分配(推荐值< 2 KB)。

8、加载模块性能

①LUP CPU峰值(ms):项目运行过程中,Loading.UpdatePreloading的CPU耗时最大值(推荐值< 1500ms)。

②RUUA CPU峰值(ms):项目运行过程中,Resources.UnloadUnusedAssets的CPU耗时最大值。除CPU峰值外,您还需要关注该函数的调用频率(推荐值< 1000ms)。

内存管理

1、内存占用

①总内存峰值 (MB):项目运行时Unity引擎所统计的真实物理内存分配,这里并不包含系统缓存和第三方库的自身分配内存(推荐值< 150 MB)。

②堆内存峰值 (MB):项目运行时 Mono 管理和分配的托管堆内存(推荐值< 40 MB)。

③GFX 内存峰值 (MB):项目运行时用于渲染的资源所占用的内存,该值为底层显卡驱动所反馈的内存分配量。一般来说,该部分内存占用主要由渲染相关的资源量所决定,包括纹理资源、Mesh资源、Shader资源以及解析这些资源的相关库所分配的内存等(推荐值< 80 MB)

④泄露风险

2、资源使用

①内存峰值 (MB):表示纹理资源在使用过程中的内存最大量。建议结合运行截图来判断内存使用是否合理(推荐值< 50 MB)。

②大于1MB数量:所检测到内存大于1MB的纹理资源数量(推荐值< 20)。

③RGBA32格式数量:所检测到格式为RGBA32的纹理资源数量。建议尽可能将RGBA32格式纹理转换为硬件支持的纹理格式,既可以降低内存的使用,又可以提升资源的加载效率(推荐值< 20)。

④RGB24格式数量:所检测到格式为RGB24的纹理资源数量。建议尽可能将RGB24格式纹理转换为硬件支持的纹理格式(推荐值< 20)。

资源管理

1、资源管理汇总

2、AssetBundle加载

3、具体AB使用情况

4、资源加载

5、资源卸载

6、资源实例化/激活

代码效率

1、CPU时间占用

2、堆内存分配

CPU性能

1、Overdraw功能

2、Mipmap功能

重要参数解析

1、引擎性能参数:建议将用到的Shader打成一个AssetBundle,然后在游戏开启时,一次性加载并常驻内存。

2、自定义变量
3、自定义代码段

硬件参数解析

1、温度与电量

2、网络传输

3、内存设备

项目运行日志

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章