当前位置: 首页 > article >正文

极简模式,助力宏观数据监控

随着UWA GOT Online采样的参数越来越多样化,为了提升开发者的使用体验,我们最新推出了三种预设数据采集方案:极简模式、CPU模式、内存模式。该更新旨在降低多数据采集对数据准确性的干扰,同时也为大家提供更精准且有针对性的数据指标,降低分析成本。

概括来说,极简模式让您专注于整体运行的宏观信息,综合判断项目的健康度;CPU模式和内存模式则分别通过引擎模块的重点参数和 内存层面的细节组成(如Mono,Lua和资源内存等) 来深入定位问题瓶颈。

开启全新的UWA SDK 2.4.9,让您的性能监控之旅变得更加直观和高效。

极简模式

极简模式不额外占用性能开销,开发者可以准确获取各类指标数值以及报告评分。

在极简模式下,UWA SDK默认关闭所有数据获取配置,但保留了游戏运行的宏观数据,包括FPS、内存、设备电量、设备温度、网络传输、GPU参数等。

除了支持Development包外,极简模式也支持Release包,以便数据更接近玩家端的性能表现。

极简模式可以用于对项目的性能情况进行定期监控。UWA建议项目每双周进行一次此模式下的数据采集,确保项目性能的健康状态。

当项目的某项性能数据出现下滑时,开发者就可以根据性能简报中的评级和具体数据,选择其他模式进行进一步的测试。

CPU模式

CPU模式专注于定位CPU性能瓶颈,当已知CPU压力较大、需要进一步分析定位时,可以使用该模式进行测试。

在CPU模式下,UWA 默认开启与CPU相关的几个选项,包括详细堆栈、Lua堆栈、Timeline、Unity API、资源管理等,这些选项可以帮助开发者更具体地了解项目的CPU性能情况。

其中,堆栈获取可以查看总体性能趋势下各模块的函数堆栈信息,帮助开发者了解各个模块的性能表现。详细堆栈细节可以使引擎模块函数下的堆栈进一步展开,获取更多堆栈细节。

总体性能趋势:

详细堆栈:

如果项目使用了Lua,也可以在卡顿分析页和逻辑代码模块的函数堆栈中查看Lua函数的具体耗时和堆栈信息。

Lua:

同时,在Timeline模块中我们可以对卡顿函数进一步分析,查看主线程和子线程的交互情况。

Timeline:

Unity API则可以补充数据采集的Unity接口,如果项目使用了这些API,可以在函数堆栈中看到这些函数的堆栈信息。

Unity API:

而在开启资源管理模块后,可以在报告的资源管理页查看测试过程中各项资源的加载、卸载情况,定位长时间驻留在内存或频繁加载卸载的资源,及时调整资源加载策略。

资源管理:

内存模式

内存模式专注于定位内存使用问题,开发者可以通过此模式查看更细节的内存分布。当项目的内存占用较高或需要进一步分析优化时,可以使用内存模式进行测试。

在内存模式下,UWA 默认开启Resource和Lua内存选项,并且会在测试过程中每1000帧自动采集Lua内存数据。

在内存分析下的资源分析页中,开发者可以查看更详细的纹理、网格、动画等11种主流资源的内存走势和具体资源信息。除了通用的内存、数量、生命周期外,针对不同类型的资源,UWA还会列出相关的重要参数。

纹理的属性截图:

在Lua内存页下,则可以通过总体堆内存、堆内存具体分配和Mono对象引用三个页签,详细查看Lua的资源内存和排查Lua堆内存分配情况。

Lua截图:

除了上述的3个预设方案外,UWA还提供了灵活的自定义配置选项,开发者可以结合自身需求灵活配置检测数据,获取关键的性能数据,准确定位CPU耗时、内存占用高和卡顿问题的源头。


UWA也将继续关注开发者的需求,并不断更新和改进工具的功能和服务,帮助开发者更高效地进行性能分析和优化工作。

UWA SDK下载链接:UWA | 致力于游戏VR和AR应用提供项目研发解决方案 | 简单优化、优化简单 | 侑虎科技,欢迎试用体验!


http://www.kler.cn/news/162432.html

相关文章:

  • 图片和文字如何生成一个二维码?图文生成二维码的做法
  • 万界星空科技MES---制造企业的加工生产模式
  • Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务
  • 【Linux】stat命令使用
  • 【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法
  • 【Linux系统化学习】命令行参数 | 环境变量的再次理解
  • springboot快速入门
  • python3: jieba(“结巴”中文分词库) .2023-11-28
  • 028:简单的foreach
  • Android Studio的笔记--String和byte[]
  • 朴素贝叶斯 贝叶斯方法
  • Servlet should have a mapping
  • 使用ASIRequest库进行Objective-C网络爬虫示例
  • Mysql自动备份脚本(本地备份、远程备份、删除冗余备份)
  • 记录 | 使用samba将ubuntu文件夹映射到windows实现共享文件夹
  • C语言——2048完整版
  • Kubernetes - 为什么 K8S 在容器里不能调用自己?
  • 制作一个RISC-V的操作系统三-编译与链接
  • 理解 HTTP POST 请求:表单与 JSON 数据格式深入解析20231208
  • JVM的内存结构详解「重点篇」
  • el-form表单校验值为0提示校验不通过
  • 圣诞树网页效果代码详解
  • 应急响应-挖矿病毒处理
  • 【C语言】字符串函数strlen #strcpy #strcmp #strcat #strstr及其模拟实现
  • JS APl关于电梯导航做法(ES6)
  • 正则表达式详细讲解
  • openEuler JDK21 部署 Zookeeper 集群
  • 盘点11月Sui生态发展,了解Sui的近期成长历程!
  • springboot3.0更新后,idea创建springboot2.x项目
  • js写旋转的时钟动态