NEW | GOT Online支持多模式采集、Mono分析支持IL2CPP打包

news2024/11/28 17:19:04

在性能优化时,你是否也遇到过这样的困扰:和性能相关的参数非常多,为什么能保障广度,就没法保障深度?这是因为数据的获取本身存在打点消耗,如果获取全量数据势必存在大量打点操作,导致收集的数据失真。原先大家使用的GOT Online测评就分为4个模式单独采集,也正是出于数据互相不干扰的考量。

不过,这也给测试同学增添了额外工作量。为了两者兼得,我们在UWA SDK 2.4.5版本中,将GOT Online的采集模式做了调整:支持自定义数据采集的配置,即在Overview模式中可以配置Resource和Lua的数据采集。如此一来,存在逻辑关系的性能数据就能在一份报告中同时获取,大幅提升了测试效率,又达到了分析的目的。

由于同时开启不同数据采集模式对性能会有不同程度的影响,建议大家配置测试需求的时候留意说明文档的注意事项。

IL2CPP包支持Mono数据深度分析

Mono堆内存分配的优化一直是性能优化中非常重要的一环。我们知道,Mono堆内存的持续分配不仅会造成内存占用,还会触发GC造成卡顿。如果项目存在较严重的Mono泄漏,撑爆内存造成闪退的情况也时有发生。

现在,UWA在IL2CPP包上也支持了Mono数据的深度分析,集成SDK 2.4.5并在出包时勾选Script Debugging选项,即可在IL2CPP包上进行Mono数据的采集和分析,再也不用费时费力出Mono包了。

通过GOT Online Mono模式对项目的堆内存分配和泄漏情况进行数据采集和分析,开发者可以快速定位项目Mono模块的性能问题 ,并着手进行优化。


更细致的内存分析,轻松排查资源、Mono和Lua

新增内存分析模块,可分为资源内存、Lua内存和Mono内存这3个模块。

当测试中未开启Resource模式时,资源统计模块会统计主要场景(测试起始帧、每千帧、场景切换帧和结束帧等)中纹理、网格、Shader、字体、RenderTexture、粒子系统等主流资源的数量和大小;而当开启Resource模式后,则会对上述资源的使用详情做更详细的采集。

以纹理资源为例,开启Resource模式后,可以在报告中获取纹理资源的内存占用、数量峰值、宽度、高度、生命周期和是否开启了R/W等属性,以便开发者对纹理的使用情况做更详细地排查。

当测试时配置开启Lua模式时,即可在Lua内存下查看总体堆内存、堆内存具体分配和Mono对象引用的数据,便于开发者对项目中Lua内存的分配和占用情况进行分析。

由于Lua对Mono对象引用也会造成Mono堆内存无法释放造成泄漏,所以关注Mono对象引用模块也会对Mono内存泄漏情况的优化有所参考,详细查看这篇文章《新功能!Lua,是时候和你走走心了!》。

Mono内存分析则包括Mono Reserved和Mono Used两个指标,以便开发者团队关注Mono堆内存的内存占用和实际使用的情况。

当Mono堆内存较高时(UWA建议控制在80MB以内),就建议使用GOT Online Mono模式,对Mono堆内存分配进行进一步的测试和优化。


新增重点函数卡顿分析

最新版本将卡顿分析界面做了细化,分为重点函数分析和卡顿点分析两个页面。

1. 重点函数分析
包括了GC.Collect卡顿、Unload Unused卡顿、加载卡顿三类常见的卡顿情况。在重点函数分析页签下,UWA对测试过程中不同函数下的重点函数进行了整合。

以加载卡顿页为例,在这一页签下,可以查看Shader.Parse、Shader.CreateGPUProgram、Instantiate和LoadingReadObject函数的耗时情况、卡顿位置和调用频率等数据,以便开发者快速定位卡顿原因。

2. 卡顿点分析
在卡顿点分析页,除了熟悉的每帧耗时曲线、函数指定帧堆栈信息和函数时序调用外,新增了卡顿点分析功能。

通过左侧的饼状图,可以看出卡顿帧的卡顿原因,点击还可以对造成卡顿的函数进行进一步下探。

另外,当已知项目的Lua压力较大时,也可以在测试开始时勾选Lua选项。此时,报告中的函数指定帧堆栈信息和函数时序调用模块也会获取到Lua相关的函数,对项目进行Lua模块的优化提供更详细的数据参考。


资源管理—高效定位加载瓶颈

当项目资源越复杂、资源数量越多,资源加载和卸载时的卡顿感就越明显。通过GOT Online Resource模式下的资源管理模块,我们可以准确定位到是哪个资源造成的耗时瓶颈,查看到每个资源的加载/卸载、每个GameObject的实例化/激活等具体耗时情况。

开启Resource模式并勾选资源管理模块后,即可在资源管理模块查看到AssetBundle加载&卸载、资源加载&卸载、资源实例化&激活4大模块。

在资源管理汇总界面,UWA将需要注意的加载耗时、频率TOP 10的问题资源直接列出,通过对这些重点对象快速处理,能在短时间内达到立竿见影的优化效果。同时,也可以重点分析不同加载接口的使用情况,比如在“资源加载&卸载”界面,用户可以看到被加载的资源属于哪个AssetBundle,用了哪个接口以及加载的耗时、次数等。


GPU耗时获取方式更新

在此次更新中,UWA更新了GPU耗时的统计方式,在更新SDK后,GPU耗时统计会更稳定,兼容机型也更广。

GPU耗时的推荐值和CPU耗时一样,当项目需要维持在30帧时,GPU耗时应低于33ms(UWA推荐控制在28ms更佳),而当项目需要持续在60帧时,GPU耗时则需要低于16ms,否则容易掉帧;项目的GPU压力较大时,就需要结合GPU Counter模块的参数,包括GPU负载、GPU着色、GPU带宽、GPU图元和GPU Shader Cycles等参数,对项目的GPU压力情况进行优化。


以上就是本次UWA SDK更新的主要内容,UWA一直致力于帮助用户更高效地定位项目的性能问题,本次更新支持了Overview模式下Resource和Lua模块的数据获取,希望开发者可以节省排查问题的时间。

快来UWA官网下载SDK使用吧!下载链接:https://www.uwa4d.com/#download

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

定时任务、cron表达式、springBoot整合定时任务和异步任务-58

一:定时任务 1.1 官网地址 http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html 1.2 cron表达式 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义&am…

Spring 教程

Spring 教程Spring 概述三层架构Spring 的优良特性使用 Spring 框架的好处依赖注入(DI)Spring 框架具有以下几个特点:1)方便解耦,简化开发2)方便集成各种优秀框架3)降低 Java EE API 的使用难度…

如何集成GATEWAY作为网关(含网关404和503的解决办法)

新建model包 gateway 引入依赖 <dependencies><!--引入gateWay--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--新版本cloud去掉了负…

ESP32设备驱动-SHT31温度湿度传感器驱动

SHT31温度湿度传感器驱动 文章目录 SHT31温度湿度传感器驱动1、SHT31介绍2、硬件准备3、软件准备4、驱动实现1、SHT31介绍 SHT31 是 Sensirion 的下一代温湿度传感器。 它建立在一个新的 CMOSens 传感器芯片之上,该芯片是 Sensirion 新湿度和温度平台的核心。 与其前身相比,…

[数据库迁移]-LVM逻辑卷管理

[数据库迁移]-LVM逻辑卷管理 森格 | 2023年1月 1、本文旨在记录数据库迁移过程&#xff08;下云至机房&#xff09;中&#xff0c;对新磁盘做逻辑卷管理的过程&#xff0c;并对Linux的文件系统和分区做了相关介绍&#xff0c;如有不对之处&#xff0c;敬请指正。 2、对Linux文…

【实践】百度信息流推荐系统质效合一的交付系统建设

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年12月份热门报告盘点百度APP Feed流业务架构变迁思考和升级实践罗振宇2023年跨年演讲PPT原稿吴晓波2022年年终秀演讲PPT原稿《底层逻辑》高清配图‍基于深度学习的个性化…

数据结构:关于时间复杂度的例题计算

1、嵌套循环时间复杂度的计算 该程序&#xff0c;最上面的嵌套循环里&#xff0c;i每执行一次&#xff0c;j就执行N次&#xff0c;所以嵌套循环执行次数为N*N次&#xff1b;中间的k变量循环了2*N次&#xff1b;最后M变量循环10次。所以总共执行了 N*N2*N10 次&#xff01; 所以…

ERROR: Could not find a version that satisfies the requirement six>=1.9.0

问题分析 ERROR: Could not find a version that satisfies the requirement six>1.9.0 (from prompt-toolkit) (from versions: none) ERROR: No matching distribution found for six>1.9.0 出现这个问题的原因是python国内网络不稳定&#xff0c;用pip管理工具安装库…

websocket创建时附加额外信息 [如自定义headers信息(利用nginx)]

目录 情景描述&#xff1a; 解决方案 一、服务端要求前端创建websocket时附带的token&#xff0c;必须放在request的headers中&#xff08;常出现在第三方的合作中&#xff09;&#xff1b; 思路&#xff1a; 整体效果&#xff1a; 具体步骤&#xff1a; 二、服务端只需要获…

【Unity云消散】巩固step,lerp和smoothstep

之前在学习HLSL常用函数时就有涉及到范围相关的函数&#xff0c;但是最近做的东西发现step,lerp和smoothstep这三个函数总是一直在用&#xff0c;总是会在用的时候突然忘记他们分别是干啥的&#xff0c;这里就记录一下方便查看吧&#xff0c;形式大部分参考Unity Shader 极简实…

单绞机控制算法(线缆行业)

在了解单绞机之前需要大家对收放卷以及排线控制有一定的了解,不清楚的可以参看下面几篇博客,这里不再赘述,受水平和能力所限,文中难免出现错误和不足之处,诚恳的欢迎大家批评和指正。 收放卷行业开环闭环控制算法 PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博…

whistle本地代理线上(vue项目)

安装whistle install -g whistle 安装好后&#xff0c;cmd控制台启动whistle “w2 start” 访问whistle本地前端 127.0.0.1:8899 &#xff08;一般是这个网址&#xff09; 这里要注意如果您当前使用的是https类型的域名&#xff0c;需要安装https证书&#xff0c;这样才能代…

ShardingSphere的强制路由不起作用

开启注释 开启hint 然后使用注释去查询&#xff1a;/* ShardingSphere hint: dataSourceNameds_db */

本地数仓项目(三)—— 数据可视化和任务调度

1 背景 本文基于《本地数据仓库项目(一)——数仓搭建详细流程》和《本地数仓项目(二)——搭建系统业务数仓详细流程》数据为依托&#xff0c;实现数据可视化和任务调度 2 构造可视化数据 在mysql中新建ads_uv_count表 DROP TABLE IF EXISTS ads_uv_count; CREATE TABLE ads…

机器学习的一般框架

数据科学开发工具 anaconda&#xff1a;管理开发环境 jupyter&#xff1a;编写整个数据处理流程 pycharm&#xff1a;远程编写调试代码 ipdb&#xff1a;pycharm dubug时偶尔出现一些bug&#xff0c;可以用结合ipdb补充解决 数据开发六步 data 数据的获得、清洗、特征工程等…

1.数据结构(栈 队列 数组 链表)

栈 先进后出 后进先出 队列 先进先出 后进后出

告别2022,寄语2023(论一个普通大学牲的2022年能有多奇葩)

今天是2022年12月31日&#xff08;当然文章发出应该是2023年1月啦&#xff0c;因为我阳了&#xff0c;/(ㄒoㄒ)/~~&#xff09;&#xff0c;原来时间过得这么快&#xff0c;作为中国地质带专的一名普通计算机学牲&#xff0c;也是趁着跨年之际&#xff0c;写一篇属于自己的年末…

Springcloud elasticsearch基础介绍

哈喽~大家好&#xff0c;这篇来看看Springcloud elasticsearch基础介绍。 &#x1f947;个人主页&#xff1a;个人主页​​​​​ &#x1f948; 系列专栏&#xff1a; 【微服务】 &#x1f949;与这篇相关的文章&#xff1a; SpringClou…

jdk-HashMap(1.8)源码学习

hashMap介绍hashMap是我们日常用得最多的一种并发包其中之一了&#xff0c;hashMap是线程不安全的&#xff0c;不安全主要体现在高并发的场景下&#xff0c;1.8是用数组链表红黑树实现&#xff0c;1.8之前用数组链表&#xff0c;可能会导致死锁及数据丢失。红黑树结构&#xff…

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

牛啊&#xff01;长这么大还是头一次见24W字的SpringBoot从入门到实战文档&#xff01; 不服还真不行&#xff0c;因为这份文档包含的内容是又全又新&#xff0c;而且还特别高深&#xff0c;从入门到实战的内容全都有&#xff01;&#xff01; 继续往下看&#xff1a; 本文档从…