# 真机性能测试
# 简介
使用云真机进行APP/应用的实时基础性能数据采集,可以精确到进程级别,支持多进程,可以在一次使用过程中测试多个场景的性能。性能数据目前包括:cpu、内存、帧率、流量,更多性能数据指标还在开发中...
# 支持系统
Android & iOS
# 使用说明
# 服务地址:https://yanshu.effirst.com/real-devices-performance
# 顶部一级菜单
# 选择设备:
- 通过勾选筛选条件进行筛选
- 如果您需要更多的筛选条件,请点击更多
- 通过输入关键字搜索,支持型号搜索
# 安装应用
性能测试每次自动测试新安装的应用,所以使用前必须进行安装被测应用
- 安装已有应用
- 上传本地包安装
- 安装常用应用
以上方式任选其一
# 性能测试
安装后自动开始收集安装的APP的性能数据,就可以开始进行性能测试了,在一次使用云真机的过程中,可以进行多次性能数据采集,会生成多分性能报告。
# 开始测试
点击开启测试,开始进行测试数据收集,同时操作云真机上的app配合进行测试。
勾选了测试过程截图,平台底层即会进行截图操作,在结束测试后的报告中展示
注意:测试过程截图会消耗一定的性能,因此对基础性能数据会有一定的影响
# 结束测试
点击结束测试,结束此次场景下的测试,会把这一段时间内的性能数据进行采集和分析,生成对应的测试报告
# 查看报告
# 基本数据
设备数据、被测应用信息、测试时间等
# 概览数据
CPU/内存/网络/FPS/Jank 等基础数据的最大数据、最小数据、中位值以及90分位数
# 各项数据
- CPU
- 内存
- 帧率
- 网络流量
点击图表数据,自动显示该时间点对应的截图(测试过程需要勾选截图)
向下滚动,截图缩略图自动固定在顶部,方便其他指标联动
# 数据指标:
# 1. Android
性能指标 | 描述 | 指标 | 标准 |
cpu | total cpu: 整机cpu使用率 app cpu:进程cpu使用率 cpu clock: 各个cpu核心的频率和使用率 | ||
memory | memory | NativePSS:native 程序使用的物理内存 GL: unknown: https://www.gameres.com/865025.html | |
swap memory | 部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低 | ||
virtual memory | 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。 | ||
fps | 两种计算方法: AppMonitor使用Choreographer, 线下使用SurfaceFlinger | FPS(1秒内画面或者应用界面真实平均刷新次数,俗称帧率/FPS) 1) Avg(FPS):平均帧率(一段时间内平均FPS) 2) Var(FPS):帧率方差(一段时间内FPS方差) 3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数) | |
jank | 1) BigJank:1s内严重卡顿次数 2) Jank(/10min):平均每10分钟卡顿次数。 3) BigJank(/10min):平均每10分钟严重卡顿次数 1. 同时满足以下两条件,则认为是一次卡顿Jank. a) 当前帧耗时>前三帧平均耗时2倍。 b) 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。 2. 同时满足两条件,则认为是一次严重卡顿BigJank. a) 当前帧耗时>前三帧平均耗时2倍。 b) 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。 | jank | |
stutter | 一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。 Stutter(卡顿率) = ∑Jank time / Time | ||
1min,5min,10min | 1min,5min,10min,jank次数 | ||
ftime | 上下帧画面显示时间间隔,即认为帧耗时 Avg(FTime) | 平均帧耗时 | |
Delta(FTime) | 增量耗时(平均每小时两帧之间时间差>100ms的次数) | ||
GPU | GPU Usage | gpu 核心使用率 | |
gpu clock | gpu 核心使用频率 | ||
network | Recv:下行 Send:上行 | ||
CTemp | cpu温度 | ||
battery | usb 模式下统计功耗没有意义(充电) | ||
加载耗时 | 页面加载耗时 |
# 2. iOS
性能指标 | 描述 | 指标 | 标准 |
cpu | total cpu: 整机cpu使用率 app cpu:进程cpu使用率 | ||
memory | footprint |
| |
Xcode Memory | XCode Debug Gauges统计方式即XCode Memory | ||
Real Memory | Xcode Instrument统计方式即Real Memory,实际占用物理内存。除了footprint外,还有进程在系统中使用的内存,如: OpenGL textures,OpenAL,code等 注:物理内存与系统策略有关,关注意义不大 | ||
Virtual Memory | 虚拟内存 | ||
fps | 两种计算方法: AppMonitor使用Choreographer, 线下使用SurfaceFlinger | FPS(1秒内画面或者应用界面真实平均刷新次数,俗称帧率/FPS) 1) Avg(FPS):平均帧率(一段时间内平均FPS) 2) Var(FPS):帧率方差(一段时间内FPS方差) 3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数) | |
jank | 1) BigJank:1s内严重卡顿次数 2) Jank(/10min):平均每10分钟卡顿次数。 3) BigJank(/10min):平均每10分钟严重卡顿次数 1. 同时满足以下两条件,则认为是一次卡顿Jank. a) 当前帧耗时>前三帧平均耗时2倍。 b) 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。 2. 同时满足两条件,则认为是一次严重卡顿BigJank. a) 当前帧耗时>前三帧平均耗时2倍。 b) 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。 | ||
stutter | 一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。 Stutter(卡顿率) = ∑Jank time / Time | ||
1min,5min,10min | 1min,5min,10min,jank次数 | ||
ftime | 上下帧画面显示时间间隔,即认为帧耗时 Avg(FTime) | 平均帧耗时 | |
Delta(FTime) | 增量耗时(平均每小时两帧之间时间差>100ms的次数) | ||
GPU | Render | 渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等) | |
Tilter: | Tilter利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因) | ||
Device | 设备利用率(整体GPU利用率) | ||
network | Recv:下行 Send:上行 | ||
Wakeups | 线程唤醒次数 | 超过150进程很大可能会被系统kill | |
CSwitch | 上下文切换测试 | 单核超过14000进程会被系统Kill | |
Energy Usage | 即为Xcode Energy Impact。监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead | 和Xcode Energy Impact结果一致。有线模式下测试,支持iOS9及以上系统。Total Energy<=270为Low,270<Total Energy<=1000为High,Total Energy>1000为Very High)。 | |
battery | usb 模式下统计功耗没有意义(充电) | 整机实时Current电流、Voltage电压、Power功率 | |
加载耗时 | 页面加载耗时 | ||
场景渲染耗时 |
← 云真机模拟定位 Android兼容性测试 →