使用 UWA Gears 测试小游戏性能

ops/2024/9/25 12:39:17/

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。

随着小游戏的规模和用户量持续增长,玩家对于小游戏的性能要求也越来越高。为了能够给玩家带来流畅的体验,留住更多的玩家,性能问题的优化也是迫在眉睫。本文将详细介绍使用Gears-Realtime模式进行小游戏测试的流程,以及Android现网的性能评测标准。

评测标准

小游戏的运行周期来看,主要是在启动和运行两个阶段容易产生性能问题。
启动阶段:启动时长,该数据将显著影响用户打开留存率
运行阶段:内存峰值、内存Crash率、CPU占用、流畅度、网络等
兼容性问题:包括JS异常、黑屏等严重问题

根据微信官方文档提供的现网真实玩家上报的性能数据,对Android现网性能评测标准进行了汇总,具体图表如下。

Android现网性能评测标准


 

性能测试方法

  • 启动性能:采用录屏分帧方法获取,取10次测试平均值
  • 运行性能:完成游戏主流程对局5~10min, 记录性能数据并取平均值,每种机型测试3组数据再取平均值,内存峰值取最大值

注意: 每次测试均要尽可能保证测试用例的一致性。

获取性能测试数据流程

打开小游戏后,使用命令“adb shell dumpsys activity top | findstr ACTIVITY” 获取小游戏的进程pid。

使用“adb shell ps pid”命令获取小程序的进程名。

  • 获取性能测试数据

在Realtime模式中,使用“选择进程”的方式选择小游戏对应的pid和进程名的选项,进行性能数据的采集。

分析性能数据

  • 启动阶段

启动耗时微信推荐使用的是“采用录屏分帧方法获取,取10次测试平均值”,我们可以在Realtime模式左侧的参数面板中勾选“Screenshot(设备截屏)”的参数,在小游戏测试的过程中截取游戏画面,轻松获取耗时信息。

从上图中获取的信息来看,在0:06启动小游戏,游戏加载完成时间为0:13~0:15之间,由此得出本次的启动耗时为7000~9000ms。

需要注意的是后续启动,需要使用冷启动来启动小游戏,冷启动指的是小游戏第一次打开或者是销毁后再次打开,即在后台中清理掉小游戏再进行启动。

第二次是在0:06启动小游戏,在0:12时小游戏已经加载完成进入主界面,所以本次的启动耗时为:6000ms。如此重复十次,然后计算出启动耗时的均值,依据计算出的均值再去评测标准的表格中去确定小游戏的性能情况。

注意:如需清除缓存,可在微信的“我”-“设置”-“通用”-“存储空间”-“缓存”中清除掉小程序和游戏的缓存即可。

  • 运行阶段

小游戏运行阶段的性能测试,我们需要完成游戏主流程对局5~10min,记录其平均值,每种机型测试3组数据再取平均值,内存峰值取最大值。

在Realtime模式中,我们可以直接框选性能曲线中游戏主流程的区域,便可直接获取该区间内的均值、最大值等数据。

该阶段我们以帧率和PSS Total两个参数为例,每一次的测试数据截图便不做展示,整理后的测试数据见下表。

根据表格的测试数据来看,FPS的均值为27.94帧/秒,PSS Total的最大值为975MB。依据计算出的数据,我们可以对照评测标准的表格来确定小游戏运行阶段的性能情况,并进行针对性的优化。

希望这篇文章能够帮助大家快速上手使用Gears-Realtime模式测试小游戏性能,高效定位性能问题。


如果您在使用过程中遇到任何问题,可以通过私信找到我们,或者前往问答社区进行提问,我们将竭诚为您提供支持。

问答社区链接:UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


http://www.ppmy.cn/ops/115781.html

相关文章

Git清除某文件所有历史提交记录

一、软件要求 1.1 软件版本要求 git > 2.22.0python3 > 3.5 1.2 辅助插件 git filter-repo Linux/macOS # Debian/Ubuntu 系统 # 或使用 pip 安装pip install git-filter-repo sudo apt install git-filter-repo Windows pip install git-filter-repo二、操作步骤…

2024新动态:低代码开发占领新常态市场

随着技术的不断进步和数字化转型的加速,企业对于快速开发和部署应用程序的需求日益增长。2024年,低代码开发平台已经成为新常态市场的重要力量,它通过简化应用程序的开发过程,让非技术背景的业务用户也能参与到软件开发中来&#…

Spring 源码解读:实现自定义注解处理器

引言 注解在现代 Java 编程中扮演了至关重要的角色。无论是简化代码、增强可读性,还是将元数据与业务逻辑分离,注解都让我们的代码更加优雅和灵活。Spring 中大量使用了注解,特别是像 Autowired、Component 等注解,这些背后依赖的…

【Elasticsearch】-实现图片向量相似检索

1、http请求方式 如果elasticsearch服务设置账号密码,则在请求的header中添加 Basic Auth 认证 请求方式:Post 请求地址:/index_name/_search 请求body:json格式 {"size": 10, //返回条数"min_score": 0.…

2024 Snap 新款ar眼镜介绍

2024 snap 新款ar眼镜介绍 2024 Snap 新款ar眼镜介绍 助力快速掌握数据集的信息和使用方式。

【算法】算法思想合集

数组分块 将数组分成具有某些特征的段使用双指针算法(如果是数组,使用下标充当指针)存在信息丢失的问题,可以考虑从后向前进行利用单调性进行定性分析(盛最多的水) 滑动窗口同向移动的双指针出窗口一般是w…

mfc140u.dll引发的软件故障怎么破?mfc140u.dll文件损坏的解决办法全知道!

当这个重要的 DLL 文件丢失或损坏时,用户可能会收到一个错误消息,提示 “程序无法启动,因为计算机中缺失 mfc140u.dll” 或类似的提示。这种情况不仅令人困扰,而且可以干扰正常的工作流程,尤其是当您依赖特定软件完成日…

Uniapp低版本的安卓不能用解决办法

Uniapp低版本的安卓不能用解决办法 语法例子: 语法 不要使用过于新的语法规则 例子: 1. ${aa} 字符变量替换报错 换成连接, 2.let const 报错,换成 var 声明变量 3.includes() 报错 用indexOf替换 4.()&…