专栏首页QA一隅APP性能测试—帧率

APP性能测试—帧率

无论是手机端还是PC端,画面的流畅度一直被用户视为衡量应用视觉体验的重要标准。而对开发者来说,帧率(FPS)通常作为衡量应用是否流畅的标准。

一帧就是一副静止的画面,连续的帧就形成动画,我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的数量,也可以理解为图形处理器每秒钟能够刷新几次。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。

我们看到的早期动画片其实就是用一张张手绘图片连贯翻页制作而成的。当一张张独立图片切换速度足够快时,我们的眼睛就会以为这是连续的动作,这个就是视觉暂留现象。

FPSFrames Per Second(每秒显示的帧数),用于测量显示帧数的度量。帧数为0说明页面处于静止,只要画面动起来,这个帧数就会有变化,看一张图直观感受一下:

通过上图我们能看出FPS值的大小对画面流畅度的影响,每一帧都是静止的图像,快速连续地显示帧便形成了运动的假象,因此高帧率可以得到更流畅、更逼真的动画。

何为帧延迟?卡顿如何造成的?

卡顿本质其实就是操作过程中的丢帧 , 本来一秒中画面需要更新 60 帧,但是如果这期间只更新了 30 帧 , 那么在用户看来就是丢帧了 , 主观感觉就是卡了 , 尤其是帧率波动 , 用户的感知会更明显. 引起丢帧的原因非常多, 有硬件层面的 , 有软件层面的 , 也有 App 自身的问题. 帧延迟的高低可以通过帧时间(Frame Time)来判定。

Android FPS测试

adb 命令获取

环境准备

  1. 将设备连接到PC,输入adb devices可以查看到设备信息。
  2. 并且在设置-开发者选项-监控-GPU呈现模式分析-勾选上In adb shell dumpsys gfxinfo
  1. PC上打开cmd窗口,启动待测应用。

执行测试

  1. 使用如下命令可以获取设备当前打开的应用包名。
adb shell dumpsys window|grep mCurrentFocus
  mCurrentFocus=Window{e633a66 u0 com.youku.phone/com.youku.v2.HomePageEntry}
  1. 在App上执行操作,操作完成之后。输入命令adb shell dumpsys gfxinfo {app的包名} >{PC路径}FPS.txt
adb shell dumpsys gfxinfo com.youku.phone   > C:\Users\Shuqing\Desktop\fps.txt
  1. 在PC导出的路径可以看到生成的数据文件fps.txt

数据分析

  1. 打开fps.txt可以看到采集的原始数据如下所示,

Total frames rendered: 2465  //本次dump搜集了2465帧的信息
Janky frames: 2451 (99.43%)  //有2451帧超过了16ms.卡帧率是99.43%

Draw	Prepare	Process	Execute
	16.62	0.43	3.89	19.74
	25.26	0.14	3.29	21.84
	17.27	1.03	3.01	24.08
	8.01	1.01	5.12	17.55
	19.52	0.73	4.53	18.06
	9.60	1.28	5.19	18.45
	16.87	0.75	9.79	15.41
	24.72	0.75	3.31	17.00
	17.46	2.38	50.00	21.05
	6.87	0.12	4.12	11.90
	38.84	0.21	5.28	16.35
	4.07	0.59	3.01	18.46
	4.72	0.54	3.36	22.49
	10.63	0.81	2.85	20.23
	20.56	0.63	3.68	22.11
	11.54	0.79	2.47	20.69
	20.56	1.58	3.09	20.74
	12.42	0.58	3.49	22.69
	20.81	1.65	2.34	20.96
	2.11	0.89	3.36	19.85
	43.35	50.00	50.00	11.92
	50.00	0.22	31.40	15.05
	50.00	0.11	5.78	18.19
  • Draw: 表示在Java中创建显示列表部分中OnDraw()方法占用的时间。(单位:毫秒)
  • Prepared:代表的时间就是UI Thread传送数据给Render Thread所用的时间。
  • Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长
  • Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。
  • Draw +Prepared+ Process + Execute = 完整显示一帧的时间 ,这个时间要小于16ms才能保证每秒60帧。

iOS 帧率测试

通过使用instrumentscore animation工具,浏览网页或加载动画,查看帧数。注意:Xcode 9之后打开CoreAnimation选项(必须真机) 一般而言,当用户操作时,如果fps帧数小于40,则说明存在卡顿的情形。

本文分享自微信公众号 - QA一隅(sutune2020),作者:Sutune

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • App性能测试—CPU使用率

    CPU使用率是性能测试是一项重要指标,CPU占用过高会使得设备运行程序出现卡顿与发热,甚至出现应用程序Crash,影响用户体验。在排除硬件环境的限制下,应用程序...

    清风穆云
  • APP性能测试—内存使用率

    从操作系统的角度来说,内存就是一块数据存储区域,是可被操作系统调度的资源。在多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存...

    清风穆云
  • Unity基础系列(五)——每秒帧率(测试性能)

    本教程将创建一个简单的测试场景,然后测试其性能。先用profiler排查,然后创建我们自己的帧率计数器。

    放牛的星星
  • 性能测试-Jmeter Xhub抽帧压测

    前段时间做了抽帧的一个项目,现在想验证下对同一时间段的视频文件进行抽帧指令下发压测,看抽帧结果是否符合预期结果

    用户6367961
  • APP性能测试—PerfDog

    PerfDog是一个移动全平台Android/iOS性能测试、分析工具。可以快速定位分析性能问题。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何...

    清风穆云
  • APP性能测试—网络测试

    当前APP网络环境比较复杂,移动运营商网络有2G、3G、4G、5G网络,甚至未来的6G网络,以及越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对...

    清风穆云
  • APP性能测试—功耗测试

    功耗,通俗的理解即电流通过导体使设备运行,导体本身的电阻将电能转换为热能的过程,因此,通常功耗测试也叫电量测试。

    清风穆云
  • 专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)

    FPS 和丢帧率可以在一定程度上作为 APP 流畅度的一项衡量标准,本文介绍利用 adb shell dumpsys gfxinfo 命令获取软件渲染加载过程的...

    霍格沃兹测试开发
  • 移动APP测试之android性能测试

      当应用实现了新功能后,准备发布版本前,必须进行性能测试以确定没有性能问题,内存使用情况便是其中必须要测试的性能之一。由于内存组成的复杂性,并没有简单通用的方...

    小老鼠
  • APP性能测试方便了

    可能很多人都不是做APP开发的,但这个工具非常有用,可以推荐给做APP的朋友,一定会帮到他 腾讯开源了一个APP调试平台 - GT GT(简称随身调)是可以直...

    dys
  • Android APP性能及专项测试

    1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 ...

    测试开发社区
  • APP性能测试—启动耗时

    应用启动是整个App工序的第一道流程。对于开发者,一般需要在应用启动过程中进行初始化工作,启动页的UI展示。而对于用户来说,启动速度的快慢则极大地影响了使用体验...

    清风穆云
  • APP性能测试—过度绘制

    过度绘制就是在同一个区域中叠加了多个控件,也就是说一个像素点上会出现多个像素的叠加,实际上呈现在我们眼前的只是最上面的一个。

    清风穆云
  • 移动端性能测试必备工具PerfDog性能狗

    在项目研发支持过程中,经历如上障碍和痛苦。我们决定做一个完全独立、简单易用,与APP版本、系统版本、系统平台无任何关系的性能平台。

    WeTest质量开放平台团队
  • PerfDog使用说明书

    English User's Guide:https://bbs.perfdog.qq.com/article-detail.html?id=7

    WeTest质量开放平台团队
  • APP性能测试工具PerfDog初探

    PerfDog是腾讯开发的,相关PerfDog Service服务介绍地址:https://wetest.qq.com/products/perfdog-ser...

    世平
  • APP性能测试工具iTest初探

    iTest由科大讯飞开发,官网:http://itest.iflytek.com/,支持监控Andorid系统(支持手机,平板,电视,车机等智能终端设备)以及应...

    世平
  • PerfDog测试腾讯视频、优酷、爱奇艺视频类小程序性能

    自从经朋友介绍PerfDog这款移动端测试神器后就一直在使用它测试大型游戏的流程度,前两天使用腾讯视频追剧分享到微信时发现发现的链接直接进入腾讯视频的小程序中,...

    WeTest质量开放平台团队
  • 性能优化测试中的相关名词

    当一个APP或游戏各种功能越来越多时,性能优化的重要性就不言而喻了,况且现在APP或游戏的功能逐渐趋同,提升用户体验已从产品设计本身转到了APP或游戏的流畅性上...

    WeTest质量开放平台团队

扫码关注云+社区

领取腾讯云代金券