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

    <>

    渲染性能到底怎么表现?

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

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

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

,, 应用渲染性能相对专项测试理论基础


,, 应用渲染性能相对专项测试理论基础



,

3。渲染性能与GPU, CPU的关系

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

, 应用渲染性能相对专项测试理论基础


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

,, 应用渲染性能相对专项测试理论基础


5.安卓绘图基本过程

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

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

,, 应用渲染性能相对专项测试理论基础


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

,, 应用渲染性能相对专项测试理论基础


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

,, 应用渲染性能相对专项测试理论基础


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

,, 应用渲染性能相对专项测试理论基础


,, 应用渲染性能相对专项测试理论基础


, 应用渲染性能相对专项测试理论基础


6。了解下VSYNC

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

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

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

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

,,应用渲染性能相对专项测试理论基础


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

,, 应用渲染性能相对专项测试理论基础

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

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