使用 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.xdnf.cn/news/149783.html

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

相关文章

现代桌面UI框架科普及WPF入门1

现代桌面UI框架科普及WPF入门 文章目录 现代桌面UI框架科普及WPF入门桌面应用程序框架介绍过时的UI框架MFC (Microsoft Foundation Class)缺点 经典的UI框架**WinForms****QT****WPF** 未来的UI框架**MAUI****AvaloniaUI** WPF相对于Winform,QT,MFC的独立…

1.1 elasticsearch分布式集群基本搭建(centos7.x + elaticsearch7.11.1)

【1】分布式分片集群基础概念 【1.1】ES的分布式集群有什么用? 高可用 高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果系统每运行100个时间单位,会有…

ubuntu22.04磁盘挂载(多磁盘和单磁盘挂载)

多磁盘挂载到同一个目录 # 如果没有安装逻辑卷管理系统工具sudo apt install lvm2 # 查看磁盘分区sudo fdisk -l # 新建物理卷sudo pvcreate /dev/nvme0n1 /dev/nvme1n1 # 查看现有物理卷信息sudo pvdisplay # 新建物理卷sudo vgcreate dnyjy_vg /dev/nvme0n1 /dev/nvme1n1…

微服务之服务保护

Sentinel引入Java项目中 一:安装Sentinel 官网地址:https://github.com/alibaba/Sentinel/releases 二:安装好后在sentinel-dashboard.jar所在目录运行终端 三:运行命令,端口自己指定 java -Dserver.port8090 -Dcs…

Unity 热更新(HybridCLR+Addressable)-资源更新

七、资源更新 创建一个叫Aot的文件夹,用来存放不会热更新的资源 这个修改为第三个 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b8be5e6465184ad5ad6173c6870bfa06.png 这个是更新 在更新或者打包时遇到端口被占的报错,不用理会&#xf…

frp内网穿透常见问题

Frp编译和部署比较复杂,多端口映射时或者连接数多的情况下会出现不稳定的现象,不适合小白使用,而且仅是上一代的内网穿透技术,生产环境使用建议选择稳定性比较高的产品,如神卓互联、花生壳等,都是采用C语言…

Springboot原理之bean的依赖功能、自动配置

1. Bean管理 Spring 当中提供的注解 Component 以及它的三个衍 生注解( Controller 、 Service 、 Repository )来声明 IOC 容器中的 bean 对象,同时我们也学 习了如何为应用程序注入运行时所需要依赖的 bean 对象,也就是依赖注…

电池快充协议芯片

1:18650充电快充规则 电池知识 | 东莞市恒帝电子科技有限公司 (heldee.com) 锂电池快速充电知识【钜大锂电】 (juda.cn)18 锂电池和18650锂电池能不能快速充电,四种充电方式讲解 | 东莞市恒帝电子科技有限公司 (heldee.com) 2:国产厂家 …

光子架与电子架 -- 主从子架

主从子架模式可以实现物理上的多个子架在网管上作为一个网元统一管理,这样可以节省IP资源与管理开销,方便维护。 主从子架级联模式 在主从子架模式下,仅主子架可以和网管相连。和网管相连的主子架所在网元为网关网元。主从子架支持树型级联和…

node-rtsp-stream、jsmpeg.min.js实现rtsp视频在web端播放

1. 服务地址(私有):https://gitee.com/nnlss/video-node-server 2.node-rtsp-stream 需要安装FFMPEG; 3.给推拉流做了开关,可借助http请求,有更好方式可联系; 4.存在问题: 1&…

浅谈提示工程之In-context learning技术

提示工程之In-context learning技术; 通过一张图片围绕下边几个方面进行简单说明 概念起因本质结构注意事项 日常总结

C++(9.24)

头文件 #ifndef MY_STRING_H #define MY_STRING_H#include <iostream>class My_string { private:char *ptr; // 指向字符数组的指针int size; // 字符串的最大容量int len; // 字符串的当前长度public:My_string();My_string(const char *src);My_string(const My_s…

Error:Decorators are not valid here. 使用Angular中的装饰器

Decorators are not valid here&#xff0c;项目中出现这个提示信息&#xff0c;说明装饰器未知错误、或者在不支持的元素上使用了装饰器。 如下图所示&#xff0c;我在NgModule装饰器后面加了一个导出方法&#xff0c;加完之后控制台提示了如下错误&#xff1a;Error TS1206&a…

【python】横截面数据分析及可视化报告示例

问题描述 题目&#xff1a; 共享的数据文件夹包含 2 个外部文件。第一个文件 "project data.xls "涉及国家层面的数据&#xff08;2000-2019 年&#xff09;&#xff0c;变量大多摘自世界发展指标。变量解释在第二个文件中 创建一个模型&#xff0c;解释为什么一些国…

STM32基础学习笔记-SPI通讯协议协议面试基础题8

第八章、SPI : LCD屏 1、LCD是什么 &#xff1f;发光原理 &#xff1f; 1.LCD:液晶显示 当有电流的时候&#xff0c;液晶层中的物质会有序排列 没有电流的时候&#xff0c;无序排列&#xff0c;光不可以透过 当像素点只有黑/白色的时候&#xff0c;灰度图&#xff08;非黑即…

windows C++-同步数据结构与 Windows API

将并发运行时提供的同步数据结构的行为与 Windows API 提供的同步数据结构的行为进行比较。 并发运行时提供的同步数据结构遵循协作线程模型。 在协作线程模型中&#xff0c;同步基元显式将其处理资源传递给其他线程。 这与抢占式线程模型不同&#xff0c;其中处理资源由控制调…

RtspServer:轻量级RTSP服务器和推流器

文章目录 项目概述技术分析支持的编码格式传输方式心跳检测机制RTSP 推流安全性 架构分析RtspServer 整体架构流程分析1. 客户端连接和会话建立2. 媒体数据传输3. 心跳检测和连接维护 xop 基础库项目介绍功能特性xop 整体架构 应用场景社区问题收集与解答问题一&#xff1a;刚开…

【YOLO学习】YOLOv1详解

文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…

【AI创作组】Matlab中进行符号计算

提示:代码一定要自己运行过才算数…… 1. 符号计算工具箱介绍 1.1 工具箱功能 MATLAB的符号计算工具箱,即Symbolic Math Toolbox,是一套强大的数学软件工具,它使得MATLAB具备了符号运算的能力。该工具箱提供了一系列函数,用于求解、绘制和操作符号数学方程。用户可以直接…

深度学习之表示学习 - 半监督解释因果关系篇

序言 在深度学习的广阔领域中&#xff0c;表示学习&#xff08; Representation Learning \text{Representation Learning} Representation Learning&#xff09;与半监督学习&#xff08; Semi-supervised Learning \text{Semi-supervised Learning} Semi-supervised Learnin…