app渲染性能相对专项测试理论基础-创新互联

  1. 渲染性能到底怎么表现?

    让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网站空间、营销软件、网站建设、西区网站维护、网站推广。

  应用设计师们为了让应用呈现很棒的使用体验,对界面进行渲染,但是这些华丽的图片及转场,会使应用出现卡屏、运行不流畅的用户体验(比如切换界面、滑动滚动条等)。

2.了解下渲染性能的原理

  系统会在每16ms内对你的活动进行重新绘制,这意味着你必须在16ms内完成屏幕的更新(包括计算、绘图等操作),也就是16ms一帧。但是如果你超过了一帧超过16ms(比如32ms),就会导致丢帧现象,也就是32ms内,你依然停在之前那个画面,这样的丢帧就会导致界面出现卡顿。

 app渲染性能相对专项测试理论基础

 app渲染性能相对专项测试理论基础

3.渲染性能与GPU、CPU的关系

当你的应用需要将按钮,输入框等绘制到屏幕时,需要在CPU上将他们转换成像素和纹理,然后送至GPU(图形处理器)进行光栅化,然后呈现到屏幕上。

app渲染性能相对专项测试理论基础

以上方法速度较慢,我们可以通过Opengles Api 加快速度,Opengles Api可以将上传的内容留在GPU,然后下次你要绘制时,只要参考GPU中已经存在的网格,告诉Opengles Api怎么绘制就行了。

 app渲染性能相对专项测试理论基础

5.android绘图基本过程

android系统在你需要为应用绘图之前,都会将xml的文件转为为GPU可接受的文件,然后在屏幕上渲染。但是,这要借助内部对象displaylist(显示列表),它包括了GPU需要渲染的所有信息,还包括open GL ES 渲染所需要的所有命令。

首次绘图,会先生成一个显示列表,然后再提交命令至GPU,来执行显示列表。

 app渲染性能相对专项测试理论基础

如果将来还像渲染这个视图,比如只是在屏幕上换了位置,我们只需要再次执行显示列表。

 app渲染性能相对专项测试理论基础

如果将来我们的视图发生改变,之前的显示列表可能不在有效,我们就需要重新生成显示列表,然后再次去执行,然后在屏幕上显示。

 app渲染性能相对专项测试理论基础

当视图、布局发生改变时,会产生额外的步骤,比如按钮大小发生改变,或是布局位置发生变化,那么父容器都将启动相关视图进行位置的重新计算和编排,这就会导致额外的渲染。如果有大量的视图需要更改,这就会导致大量的性能问题,所以,你需要的就是布局失效最小化。

 app渲染性能相对专项测试理论基础

 app渲染性能相对专项测试理论基础

app渲染性能相对专项测试理论基础

6.了解下VSYNC

VSYNC:即垂直同步,理解之前,我们先弄懂下两个概念。

刷新频率:即显示器每秒的刷新速度(次数)。

帧频:GPU每秒可以绘制的帧数。

GPU获取数据进行绘制,然后在屏幕上显示。

 app渲染性能相对专项测试理论基础

如果帧频大于显示器刷新频率,就会造成画面撕裂等问题。

 app渲染性能相对专项测试理论基础

以上问题的愿意在于,GPU绘制的每一个新的帧会覆盖上一个帧,从顶部开始。现在,当屏幕刷新时,它不知道缓冲是从什么时候开始的,因此他可能从GPU当中获取的帧是未完成的。这就意味着有着上一帧的一半和当前帧的一半,解决这个问题就要采用双缓冲技术,实际上,GPU将帧绘制到内存后(也称为后台缓冲),还会复制一份到内存副区域(帧缓冲区)。当他绘制第二帧到内存的时候,帧缓冲区不收影响。当屏幕刷新时,他会从帧缓冲区刷新,这就要用到VSYNC了。VSYNC避免了屏幕刷新时,从后台缓冲区复制到帧缓冲区。

 app渲染性能相对专项测试理论基础

所以,帧频大于屏幕刷新频率是理想的,但是如果帧频小于屏幕刷新频率,就会出现问题。这样会导致刷新时,屏幕左右两侧的帧显示的一样。

 app渲染性能相对专项测试理论基础

例如,当帧频大于屏幕刷新频率时,应用是流畅的,当帧频突然小于刷新频率时,就会出现卡顿、延迟等现象。

 app渲染性能相对专项测试理论基础

7.导致超出16ms的原因

1.重新绘制视图层级的内容,这会浪费CPU资源。

2.over draw(过度绘制)

3.一次又一次的运行大量画面,导致CPU和GPU组件大量骚动


本文名称:app渲染性能相对专项测试理论基础-创新互联
链接地址:http://hbruida.cn/article/ddesjc.html