整体实现结构

pCiYlIU.png

实现背景

主要想实现一套类似Unity 官方的UPR性能测试能够针对图形测试,方便快速进行测试,统计,分析以及集群测试后面还需要整合到之前的工具链上,个人也折腾了一段时间更UPR和UWA专业的相比差距还是挺大,这里做一个记录

技术栈

Unity 2021 Server Asp.Net WebAPI 数据库Sqllite(不用跑服务感觉够用) EF Core(ORM) Web 基于Vue, 图表 echarts, UI element-ui

展示

官方UPR
pCi0DB9.png

自己搭建的
pCi029K.png

pCi0R1O.png

SDK性能数据获取是基于ProfileRecoder,导致只能在Unity 2021版本才可以
pCi0WcD.png

Server目录 Asp.Net WebApi的整体结构
pCi05Bd.png

打包空场景运行
pCi07Nt.png

测试频率设置
pCi0H4P.png

pCi0q9f.png

pCi0Xjg.png

pCi0vuQ.png

pCiBiCV.png

pCiBVu4.png

pCiBZDJ.png

待完善

1.目前已经抓取到间隔截屏数据,需要Web加入点击图表时间帧显示附近的截屏数据

2.完善能抓取的性能数据

3.因为缺Mail GPU的设备,MailGPUCounter没法获取数据解析展示

总结

获取更详细的有UPR和UWA,整体能达到Unity官网UPR的50%左右,主要一些数据获取不到,Unity SDK之前看下是Hook了Unity底层后续可以考虑反编译参考下完善

UPR对于个人免费单个项目测试次数由限制,不能自定义测试,每次测试必须连接桌面端的UPR(Profile数据比较大),除非付费,掌握整个流程也方便灵活控制

目前这个在Android,IOS,Windows加入SDK后能正常抓取数据无需连接桌面端软件直接上传到服务器,因为Profile数据比较大需要加入数据类别频率记录设置频率过高导致设备消耗比较大

相比UWA和UPR无论细节,功能还是差距比较大,因为一些变化学习研究美术程序化去了。后续有时间会继续完善.