Unity官方性能检测工具UPR使用心得

时间:2024-04-01 14:00:17

Unity官方性能检测工具UPR使用心得

UPR是Unity官方推出的免费性能检测工具,近来功能较之前版本完善了许多,经笔者在正式项目中试用,与UWA的免费性能检测工具GPM作对比,发现UPR相较GPM更加好用。UPR的优势主要体现在下面几点:

一.UPR更加易用

UPR无需导入SDK重新打包,在网站后台填写包名等信息,下载测试用apk即可开始测试。使用说明详见 UPR官网,官方的使用文档流程比较简单详细就不再重复说明了。

二.UPR的报告数据拆分得更细,数据类型更多

笔者体验下来比较实用的功能如下

1.函数有效帧平均耗时/函数有效帧平均GC

GPM只有函数的平均耗时,只能看到整体开销较大的函数,一般是一些Update函数,
函数有效帧平均耗时可以帮助排查一些单帧开销较大的函数。

Unity官方性能检测工具UPR使用心得

2.更详细的内存数据

Unity的主要内存构成如下(项目测试阶段可能还有Unity Profiler占用的内存)
Reserved Total = Reserved (Unity + Mono + GFX + FMod)
Unity : Unity引擎自身逻辑所需要使用的内存分配,包括各模块管理类的内存占用,序列化信息、WebStream、资源的内存占用等等。
Mono : Mono 管理和分配的托管堆内存。
GFX : 项目运行时用于渲染的资源所占用的内存。
FMod : 项目运行时用于音效的资源所占用的内存。

UPR对这些内存构成的每一项都提供了走势图,除了分配情况外,还统计了实际的使用情况。

3.罗列了容易产生性能问题的热点模块

比如渲染模块中统计了不透明渲染耗时有效帧均值(ms)和半透明渲染耗时有效帧均值(ms)。
加载模块统计了GameObject Activate & Deactivate Instantiate & Destroy等开销较大的函数的调用次数、耗时等情况。
我们可以方便的根据走势图找到开销异常的帧,再根据该帧的截图找到相应的功能进行检查优化。

Unity官方性能检测工具UPR使用心得

4.一些特色功能

例如函数耗时分布图/函数GC分布图/对象快照(仅PC支持)/内存快照等功能,能够比较直观的看到某一帧的函数开销或资源占用内存的情况。

Unity官方性能检测工具UPR使用心得

综合比较下来看,笔者更推荐使用UPR做项目的整体性能评测。不过GPM也有独有的一些数据,比如能耗均值(平均每10K帧消耗的电量百分比),GPU信息(GPU耗时峰值/GPU使用率峰值/GPU频率峰值)等,也有一定的参考价值。另外UWA的其他工具如本地GOT工具、本地资源检测工具、在线AssetBundle检测也都是非常不错的针对性解决排查性能问题的工具,可以结合项目实际需求选用。