当前位置:主页 > 房产 > 正文

朴政玟:你应该知道的性能评测之一:流畅度测

时间:2020-11-14 22:05 来源:未知 编辑:admin

核心提示

原标题:你应该知道的性能评测之一:流畅度测试对于任何产品来说,流畅度的重要性都不言而喻,流畅度的好坏,对一个产品的体验和口碑有着极大的影响。今天,小编就和大家一起...

  原标题:你应该知道的性能评测之一:流畅度测试

  对于任何产品来说,流畅度的重要性都不言而喻,流畅度的好坏,对一个产品的体验和口碑有着极大的影响。今天,小编就和大家一起学习下流畅度评测的相关内容~

  什么是流畅度

  我们都知道动画片其实是由一张张画出来的图片连贯执行产生的效果,当一张张独立的图片切换速度足够快的时候,会欺骗我们的眼睛,以为这是连续的动作。反之,当图片切换不够快时就会被人眼看穿,反馈给用户的就是卡顿现象。

  Android绘制机制及卡顿原因

  上图是在VSync机制下的绘制过程。VSync是Vertical Synchronization(垂直同步)的缩写,可以简单地把它认为是一种定时中断,Android规定,1秒钟有60个Vsync间隔,每个间隔时间为16.67ms,从图中看CPU 和GPU处理时间都很快,都少于一个VSync的间隔。

  当CPU和GPU处理时间都很慢或者因为在主线程中干活太多,就会出现上图的现象。从上图可以看到CPU和GPU处理时间比较慢,都大于一个VSync的间隔,第二个VSync还在处理A区域的绘制。

  现在的App每秒中最多能绘制60帧,1000ms/60帧=16.67ms/帧,也就是说对图像绘制的要求是平均每帧的绘制时间为16.67ms,超过了这个时间就可能造成不流畅的现象。

  FPS测试流畅度的不足

  FPS(Frames Per Secend)即一秒内绘制的帧数。FPS值越高画面越流畅。

  举例:在测试输入法按键响应时,当我们按下按键到候选绘制完成的时间用了50ms,这个过程只用3帧就完成了,那么FPS就是3帧/秒,可见FPS值非常低,但是我们在测试过程中却没有发现卡顿的现象,这是为什么呢?

  原因:输入法在1s内只有3帧的显示需求,50ms就画完了,那么FPS最高也只有3帧/秒。我们在使用输入法时,并没有每时每刻都在打字、滑动屏幕,很多时候输入法是处于静止的状态,这个时候输入法界面并不会进行图像绘制,那FPS就为1,但这个数并不能代表当前App在UI上界面不流畅。

  结论:由此可见,FPS来衡量相对静止App的流畅度并不准确。

  SM测试流畅度

  VSync机制客户通过其Loop来了解当前App最高绘制能力,其机制如下:

  1)固定每隔16.6ms执行一次;

  2)如果没有绘制事件的时候也会运行这样一个Loop;

  3)Loop在1s之内运行了多少次,即可以表示当前App绘制的最高能力,也就是App卡顿的程度。

  if(存在帧的绘制):

  Loop=1 帧绘制完成所占用的Vsync间隔

  else:

  Loop=1个Vsync间隔

  所以SM计算方法为Loop在1s内运行了多少次(Loops per seconds)。Android机制中有一个Choreographer对象,当收到Vsync信号时,通过postCallback设置的回调函数调用使用者,在每一个Loop运行前通知我们,我们只需要数一下一秒内通知我们的次数就可以了。

  使用腾讯提供的测试工具GT对流畅度进行测试,主界面如下图所示:

  使用步骤为:

  1)设计流畅度评测的动作;

  2)打开“流畅度调试”;

  4)进入“参数”界面,点击“编辑”,拖动“SM”至“悬浮窗展示的参数”,可以实时看到SM的变化,然后点击“出参列表”右侧的红色按钮开始;

  5)操作被测App,完成后点击“SM”可以看到评测的相关数据,包括:次数、平均值、最小值等;

  6)点击“出参列表”右侧的红色按钮结束,结束后点击“保存”可以将评测的数据保存在相应的目录下。

  流畅度优化

  一开始发现App有卡顿的情况后,首先去查看我们的App是不是存在过度绘制的问题。过度绘制是指屏幕上的某个像素在同一帧的时间内被绘制了多次,在多层次的UI结构里面,如果不可见的UI也在做绘制的操作,这就会导致某些像素区域被绘制了多次。这就浪费大量的CPU以及GPU资源。过度绘制显示的四种颜色如下图所示。

  作者:Anna

  程序员大咖整理发布,转载请联系作者获得授权

  责任编辑:

下一篇:没有了
  • 朴政玟:你应该知道的性能评测之一:流 朴政玟:你应该知道的性能评测之一:流

    原标题:你应该知道的性能评测之一:流畅度测试对于任何产品来说,流畅度的重要性都不言而喻,流畅度的好坏,对一个产品的体验和口碑有着极大的影响。今天,小编就和大家一起...

  • 郭欢:国内画师是个什么行情 郭欢:国内画师是个什么行情

    纯好奇,这年头哪行哪业都是内卷到爆,画师行业是个什么行情啊?人多汤少还是人少汤多。现在是买方市场,供远大于求。画师真的太多太多了,只要你用心去找,完全可以找到便宜...

  • 朴秀荣:lxw的大数据田地Hadoop/Hive/HB 朴秀荣:lxw的大数据田地Hadoop/Hive/HB

    一个公司的业务运营,不论规模大小,什么行业,都离不开数据的支撑。既然要数据,那么就得取数,谁来取数,怎么取?可能是一个销售人员在用Excel取,可能是一个DBA从生产数据库中...

  • 王雨歆:不摧成语 王雨歆:不摧成语

    第一位第二位第三位第四位末位汇总所有不摧的成语,含有无坚不摧成语意思,包括:不摧开头有什么成语,不摧结尾的成语有哪些,有关不摧什么的成语查询,表达无坚不摧的成语是什么...

  • 薛文彬:击剑的剑叫什么剑? 薛文彬:击剑的剑叫什么剑?

    的剑分为三种,copy分别是重剑、bai花剑剑。重剑点du是,以zhi进攻方式。实战中可以攻击对方dao任何部位。花剑主要是贵族间决斗用的,的特点是比较轻比较纤细,也是以刺为进攻方式...

  • 彭景泉:公历 彭景泉:公历

    我们常常在提到日期的时候,常常会说到农历和阳历以及公立,农历和阳历是比较常见的日期的叫法,那么公历是什么意思?公历是农历还是阳历?下面就和小编一起来文中详细了解一...

  • 向海岚:辟谷是什么意思? 向海岚:辟谷是什么意思?

    原标题:辟谷是什么意思?辟谷,亦称却谷、断谷、绝谷。是道家修炼的方法,即是不食五谷和肉类,但要服食药饵兼行行气、咽元、导引等功夫。练到一定程度出现不感饥饿,不进饮食而精...

  • 王自健:人喝什么农药自杀快 喝农药后人 王自健:人喝什么农药自杀快 喝农药后人

    949健康网编辑报道:美女喝农药自杀视频,人喝什么农药自杀快,喝农药自杀的农民夫妻,斗门一女生喝农药自杀,15岁少女喝农药自杀,喝农药自杀痛苦吗,喝农药自杀,喝农药自杀视...

  • 韩馨悦希:杏林、桃李、肝胆、千金、高 韩馨悦希:杏林、桃李、肝胆、千金、高

    杏林指医家桃李现在多指学生肝胆是兄弟千金是对对方女儿的尊称高足是徒弟、弟子汗青多指史书尺素就是书信杜康是酒楼兰是西域古国红豆是一味药也是相思之物手足就是兄弟1"杏林...