使用 UWA Gears 测试小游戏性能

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

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

评测标准

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

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

Android现网性能评测标准


 

性能测试方法

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

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

获取性能测试数据流程

  • 确定小游戏的进程pid和进程名

打开小游戏后,使用命令“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.rhkb.cn/news/431548.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】元数据是解锁数据价值的关键

在信息爆炸的数字时代,数据无处不在,它以多种形式存在,从文本文档到数字图片,从交易记录到科学测量。然而,如果没有合适的数据管理和理解,这些数据的价值就会大打折扣。如何提高数据价值呢?这就…

力扣 简单 206.反转链表

文章目录 题目介绍题解 题目介绍 题解 法一:双指针 在遍历链表时,将当前节点的 next 改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引…

C# CS1612 尝试修改集合中值类型的情况

在C#中,发现尝试直接修改集合中值类型的中的值发生报错 提示“它不是变量”,通过官方索引的链接可知,尝试修改某一值类型,但是该值类型作为中间表达式的结果生成但不存储在变量中,会发生报错。 正确做法是将其赋值给局…

【软考】传输层协议TCP与UDP

目录 1. TCP1.1 说明1.2 三次握手 2. UDP3. 例题3.1 例题1 1. TCP 1.1 说明 1.TCP(Transmission Control Protocol,传输控制协议)是整个 TCP/IP 协议族中最重要的协议之一。2.它在IP提供的不可靠数据服务的基础上为应用程序提供了一个可靠的、面向连接的、全双工的…

芝法酱学习笔记(0.3)——SpringBoot下使用mybatis做增删改查和报表

零、前言 书接上回,我们搭建了windows下的开发环境,并给出了一个hello world级别的多模块SpringBoot项目。 毕竟java后端开发,离不开数据库的操作,为方便后面内容的讲解,这里再做一期铺垫,core模块下新增一…

安卓13去掉下拉菜单的Dump SysUI 堆的选项 android13删除Dump SysUI 堆

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析3.1 位置13.2 位置24.代码修改5.编译6.彩蛋1.前言 客户需要去掉下拉菜单里面的Dump SysUI 堆图标,不让使用这个功能。 2.问题分析 android的下拉菜单在systemui里面,这里我们只需要定位到对应的添加代…

跟王道学c记录

scanf int a; scanf("%d",&a); 一定要有取地址符 printf 用%f精度修饰符指定想要的小数位数。例如,%5.2f会至少显示5位数字并带有2位小 数的浮点数 用%s精度修饰符简单地表示一个最大的长度,以补充句点前的最小字段长度 printf 数的所有输出都是右对齐的,除非…

Jetpack02-LiveData 数据驱动UI更新(类似EventBus)

前提 LiveData使用了Lifecycle的生命周期,阅读本文前,请先了解Lifecycle源码。 简介 LiveData本质是数据类型,当改变数据的时候,会通知观察者,且只在界面可见的时候才会通知观察者。只能在主线程注册观察者&#xf…

WebRTC编译后替换libwebrtc.aar时提示找不到libjingle_peerconnection_so.so库

Loading native library: jingle_peerconnection_so 问题原因:编译的时候只编译了armeabi-v7a的版本,但是应用程序是arm64-v8a,所以无法运行 解决方法:更新编译脚本,加上arm64-v8a进行编译 ./tools_webrtc/android/bu…

【Docker】如何让docker容器正常使用nvidia显卡

首先确保宿主机正常安装了显卡驱动 nvidia-smi打印显卡信息如下: 安装nvidia-container-toolkit工具 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker运行如下命令测试显卡是否在容器内可用 …

Maya学习笔记:物体的层级关系

文章目录 父子关系设置父子关系同时显示两个大纲视图 组 父子关系 设置父子关系 设置父子物体: 方法1 先选择子物体,按住shift再选中父物体,按P或者G键 方法2 在大纲视图中按住鼠标中间,拖动一个物体到另一个物体上 取消父子关…

TON生态系统开发指南:从零开始构建你的Web3应用

随着Web3的不断发展,TON(The Open Network)生态系统逐渐成为备受瞩目的区块链平台。依托其与Telegram的深度整合,TON生态为开发者提供了一个极具潜力的开发环境,特别是在社交、支付和金融这三个核心领域。本文旨在帮助…

基于STM32的Zeta型数控电源设计

本设计基于STM32F103C6T6为主控芯片,基于Zeta型DC/DC电源的拓扑结构设计一种数控电源。系统包含单片机主控模块、Zeta型升降压模块、驱动模块、电流采样模块、电压采样模块、OLED显示模块、电源模块及按键模块。用电流采样模块采集电流,电压采样模块采集…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.5 编程

编程部分的话,第一关会让你输入机器码,这一章节还是比较简单的,因为操作码是固定给出的,只需要根据题意去编写,完成这章目的是为了解锁下面的关卡。 输入,移动COPY之后进行运算,然后输出。 激光…

【MySql】在ubuntu下安装MySql数据库

目录 查看操作系统版本 添加 MySql APT源 访问下载页面并下载发布包 安装发布包 执行安装命令 从MySql APT源更新包信息 安装MySql 执行安装命令 查看MySql状态 开启自启动 登录MySql 查看操作系统版本 rootVM-24-2-ubuntu:~# lsb_release -a No LSB modules are ava…

stm32 的UART串口波特率115200bps,一秒钟能发多少个数据包,实测给出结论

问题描述 之前觉得串口波特率115200bps,算下来115.2kbps,一秒钟发1k个数据包很容易就实现。 但是实际应用的时候,就发现不一样了。 每个数据包格式如下: 16进制:0A 55 55 00 0D 0A 55 06 24 05 4C 05 5F 05 CE 05 …

AR传送门+特定区域显示内容+放大镜 效果着色器使用

AR传送门特定区域显示内容放大镜 效果 关键词:Portal Mask 1、教程链接: AR 传送门教程 Unity - Portal Mask Implementation - Part 4_哔哩哔哩_bilibili 应用案例效果: 2、案例下载地址:使用unity 2021.3.33f1 obi 工具…

vue echarts tooltip动态绑定模板,并且处理vue事件绑定

先上代码: tooltip: {// 这里是车辆iconshow: true,// trigger: "item",// backgroundColor: "transparent",appendToBody: true,textStyle: {color: "#ffffff" //设置文字颜色},formatter: (params) > {const TruckTooltip Vue.…

全新热门电商API接口,实现闲鱼商品详细搜索功能

近年来,电商行业蓬勃发展,API(Application Programming Interface)接口已经成为电商平台的重要组成部分。API接口不仅可以实现平台间的数据交互,还可以为开发者提供丰富的功能,满足用户多样化的需求。在这个…

嵌入式算吃青春饭么?

嵌入式系统开发并不是传统意义上的“吃青春饭”的行业。这个领域更侧重于技术深度、专业能力和持续学习的态度,而非仅仅依赖于年龄或体力。 嵌入式系统广泛应用于各种设备和系统中,从智能手机、智能家居到工业自动化、医疗设备、汽车电子等,…