学习PerfDog安卓(Android)APP的性能测试(1)
一、性能标准参考说明
经常有人问”我游戏或者APP性能标准是多少,多少CPU、内存合适?“
不同类似APP、不同类似游戏,不同档位机型,CPU、内存占用完全不样,可能都不是一个量级。很难有个统一标准。
以内存为例如下:Android平台对单个进程是没有特别限制,只要VirtulMomory不超过进程地址空间(一般是4G),系统剩余内存Ram不低于LKM,进程就不会OOM。
一档机型:
【性能基线】OPPO Reno/荣耀 9X
【内存消耗】最高PSS<=1400MB
【帧率】>=25FPS
【流畅度】卡顿率<=2%
二档机型:
【性能基线】华为P20/VIVO X20
【内存消耗】最高PSS<=1200MB
【帧率】>=25FPS
【流畅度】卡顿率<=2%
三档机型:
【性能基线】OPPO A5/荣耀畅玩7X
【内存消耗】最高PSS<=1000MB
【帧率】>=18FPS
【流畅度】卡顿率<=10%
【CPU占有率】(不区分机型)
综合CPU平均占用(90%)小于60%
单核CPU峰值占用(90%)小于90%
参考:2020年中国移动游戏质量白皮书
二、软件性能数据采集的相关名词解释
1.FPS
定义:1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS
Avg(FPS):平均帧率(一段时间内平均FPS),传统常说的FPS,1秒内平均画面刷新次数。
Var(FPS):帧率方差(一段时间内FPS方差)
Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数
2.Jank
定义:1s内卡顿次数
注意:帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系。
一次卡顿Jank:
①Display FrameTime>前三帧平均耗时2倍。
②Display FrameTime>两帧电影帧耗时 (1000ms/24*2≈83.33ms)。
一次严重卡顿BigJank:
①Display FrameTime >前三帧平均耗时2倍。
②Display FrameTime >三帧电影帧耗时(1000ms/24*3=125ms)。
备注:帧率低,并不是顿卡,如帧率都是只有几帧了,还有什么顿卡而言?
3.FrameTime
定义:两帧画面间隔耗时(也可简单认为单帧渲染耗时)。
4.Vsync
Android 显示系统:Vsync机制
VSync是Vertical Synchronization(垂直同步)的缩写,是一种在PC上很早就广泛使用的技术,可以简单的把它认为是一种定时中断。而在Android 4.1(JB)中已经开始引入VSync机制,用来同步渲染,让AppUI和SurfaceFlinger可以按硬件产生的VSync节奏进行工作。
Vsync=16ms
5.电影帧
电影帧率(18-24),一般是24帧。电影帧单帧耗时:1000ms/24≈41.67ms。电影帧率是一个临界点。低于这个帧率,人眼基本能感觉画面不连续性,也就是感觉到了卡顿。
6.Stutter(卡顿率)
定义:测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长
Stutter计算思路:基于PerfDog Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。
Stutter(卡顿率) = ∑Jank time / Time
说明:Jank为卡顿次数,Stutter为卡顿率,Jank和Stutter趋势有一致性,但并非完全线性,因为每次Jank卡顿严重性是不一样的。同时也说明了,没有Jank卡顿出现,自然也就卡顿率是0了
相关问题:
1.FPS帧率与卡顿是否有关系?
总结:帧率高,未必流畅。
三、影响
APP和游戏到底需不需要关注Jank卡顿及卡顿率呢?答案是需要的,并且还是重点关注!
APP也需要关注FPS、Jank及卡顿率。只是需要区分使用场景,如:
1) 静态页面窗口
只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。
2) 有滚动动画页面窗口
只需关注FPS,FPS处于合适值即可,无需高频刷新。
3) 快速滑动页面窗口
需要关注FPS、Jank及卡顿率。手机交互灵敏度就是来源于此,Android系统才出黄油计划Jank。一般滑动状态下,帧率越高越好,Jank越小越好。
4) 播放视频页面窗口
需要关注FPS、Jank及卡顿率,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。
学习PerfDog安卓(Android)APP的性能测试(1)相关推荐
- android性能测试自动化,Android App自动化性能测试探究
作者:彭海波 前言 Android App的性能测试是移动测试过程中必不可少的一个环节.在我们项目组内,性能测试的过程是这样的,先设置测试场景,然后一边手工执行场景,一边通过工具获取性能数据,为了减少 ...
- android安全性测试工具,Android app安全性能测试
1.安装包测试 (1)能否反编译代码(源代码泄露问题): 开发:对代码进行混淆:测试:使用反编译工具进行查看源代码,是否进行代码混淆,是否包括了显而易见的敏感信息 (2)安装包是否签名(ios重app ...
- Jmeter:使用代理录制安卓手机APP性能测试脚本
如何做安卓手机APP的性能测试?手机APP不像web或者接口那样可以用loadrunner或者Jmeter压测.手机APP的性能应该从两方面去考虑,首先APP本身,其次就是APP后端的接口.APP自身 ...
- 安卓app设计规范整理和Android APP设计篇(转)
随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...
- 安卓app设计规范整理和Android APP设计
随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...
- 安卓app设计规范整理和Android APP设计篇
安卓app设计规范整理和Android APP设计篇 发布于: 2014 年 8 月 24 日 by admin 随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近 ...
- Android App性能自动化评测方法
前言 App运行在设备上的性能表现也是质量保障的一个重要环节.因此,当我们确保了基本功能的准确之后,还需要有一定的方法评测App在不同设备上的性能表现.本文将从性能指标,评测方法,自动化体系建设等三个 ...
- java计算机毕业设计基于安卓Android/微信小程序的大学生学习激励系统APP
项目介绍 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理技术,对于微信小程序的英语学习激励系统将又是一个传统管理到智能化信息管理的典型案例,对于传统的英语学习激励管理,所 ...
- Android APP 快速开发教程(安卓)
Android APP 快速开发教程(安卓) 前言 本篇博客从开发的角度来介绍如何开发一个Android App,需要说明一点是,这里只是提供一个如何开发一个app的思路,并不会介绍很多技术上的细节, ...
最新文章
- Druid runningSqlCount 1 线上解决思路
- 趣学python3(26)-pygame-蛇身运动
- LinbDesk --- 新的extjs4.2 desktop demo : 技术交流Q群:336584192
- Java程序员需要掌握的计算机底层知识(四):内存管理
- raid-6磁盘阵列损坏导致数据丢失的恢复过程(图文教程)
- partition 子句_SQL PARTITION BY子句概述
- 声音均衡器怎么调好听_【音乐均衡器怎么调好听】五段均衡器怎么调好听_9段均衡器怎么调好听...
- 怎样将生成的pdf文件转为eps文件
- python os.walk如何不遍历隐藏文件,Python os.walk() 遍历出当前目录下的文件夹和文件...
- bilibili怎么设置弹幕数量_如何快速丰富bilibili弹幕屏蔽列表。
- Opencv学习笔记 常用函数、基础知识二
- EXTRACT() 提取函数
- 流程图设计教程和参考样例
- React- Hook 踩坑“useState“ is called in function “addP“ which is neither a React
- STM32学习笔记(16)-数据的保存与毁灭-BKP功能(1)
- 计算机系统能及时处理过程,在( )操作系控制下,计算机系统能及时处理由过程控制反馈的数据并做出响应。...
- mysql innodb 大小,更改Innodb 数据页大小优化MySQL
- 微信公众号实现模板消息推送
- SRTM DEM hgt格式转成GRID格式的问题解决
- P1786帮贡排序题解