美文网首页
性能优化工具-调试GPU过度绘制 & GPU呈现模式分析

性能优化工具-调试GPU过度绘制 & GPU呈现模式分析

作者: 7i昂 | 来源:发表于2019-10-04 09:55 被阅读0次
一、简介

调试GPU过度绘制和GPU呈现模式分析是Android手机自带的分析工具。能比较方便的帮助开发者检验是否存在overdraw和卡顿的问题,但是不能帮忙定位问题。
位置:开发者选项

二、使用

2.1 调试GPU过度绘制
这个工具主要是用来检查布局中是否存在布局层次过深的问题。

image

从上图看到检测的结果分为四个等级,蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。

image

2.2 GPU呈现模式分析

这个工具主要是用来反映界面的绘制情况,查看是否存在耗时问题。

具体渲染原理就不介绍了,本章只是工具介绍。

image

1)柱状图每一根代表一帧

2)随着界面的刷新,界面上会滚动显示垂直的柱状图来表示每帧画面所需要渲染的时间,柱状图越高表示花费的渲染时间越长。

3)中间有一根绿色的横线,代表16ms,我们需要确保每一帧花费的总时间都低于这条横线,这样才能够避免出现卡顿的问题。

4)详细分析下不同颜色的柱状图代表的意思:

image

在Android6.0之前,柱状图主要为黄色、红色、蓝色(Swap Buffers,Command Issue,Draw)三类。自从安卓6.0之后,玄学曲线进行了改版,增加至8条数据。新版本GPU呈现分析曲线新增加了(Sync&Upload,Measure&LayoutAnimation,Input Handling,Misc/Vsync Delay)五大步骤数据。

(1)Command Issue(红色):表示执行任务的时间,是Android进行2D渲染显示列表的时间,为了将内容绘制到屏幕上,Android需要使用Open GL ES的API接口来绘制显示列表,红色线条越高表示需要绘制的视图更多;比如我们在遇到多张图加载的时候,红色会突然跳的很高,此时滑动页面也就不流畅了,要等几秒图片才能加载出来,并不是卡住。

(2)Swap Buffers(黄色):表示处理任务的时间,即CPU等待GPU完成任务的时间,线条越高,表示GPU做的事情越多。若橙色部分过高,说明GPU目前过于忙碌。

(3)Draw(蓝色):表示测量和绘制视图列表所需要的时间,蓝色线条越高表示每一帧需要更新很多视图,或者View的onDraw方法中做了耗时操作。它越长说明当前视图比较复杂或者无效需要重绘,表现为卡顿。

理想的流畅状态是三色都低于绿线以下。

(4)Sync & Upload(浅蓝色):表示的是准备当前界面上有待绘制的图片所耗费的时间,为了减少该段区域的执行时间,我们可以减少屏幕上的图片数量或者是缩小图片的大小。

下面这几种统称为绿色,随着后面标注的数字颜色逐渐加深。

(5) Measure/Layout(绿色1)表示布局的onMeasure与onLayout所花费的时间,一旦时间过长,就需要仔细检查自己的布局是不是存在严重的性能问题;。

(6)Animation(绿色2):表示计算执行动画所需要花费的时间,包含的动画有ObjectAnimator,ViewPropertyAnimator,Transition等等。一旦这里的执行时间过长,就需要检查是不是使用了非官方的动画工具或者是检查动画执行的过程中是不是触发了读写操作等等。

(7)Input Handling(绿色3):表示系统处理输入事件所耗费的时间,粗略等于对事件处理方法所执行的时间。一旦执行时间过长,意味着在处理用户的输入事件的地方执行了复杂的操作。

(8) Misc Time/Vsync Delay(绿色4):表示在主线程执行了太多的任务,导致UI渲染跟不上vSync的信号而出现掉帧的情况。

总结一下:

红色/黄色/:从布局构建角度去考虑。优化:否减少视图层级、减少无用的背景图、减轻自定义控件复杂度等。

蓝色/浅蓝/各种绿色:从耗时操作角度去考虑。

相关文章

  • Kevin Learn Android:调试工具 GPU

    简介 调试 GPU 过度绘制和GPU 呈现模式分析是Android 手机自带的分析工具。能比较方便的帮助开发者检验...

  • 性能优化工具(七)-调试GPU过度绘制 & GPU呈现模

    一、简介 调试GPU过度绘制和GPU呈现模式分析是Android手机自带的分析工具。能比较方便的帮助开发者检验是否...

  • 性能优化工具-调试GPU过度绘制 & GPU呈现模式分析

    一、简介 调试GPU过度绘制和GPU呈现模式分析是Android手机自带的分析工具。能比较方便的帮助开发者检验是否...

  • Android性能优化汇总

    页面卡顿、cpu、gpu占用分析 android性能跟踪分析工具系列 - GPU 呈现模式分析 为什么Andro...

  • 布局优化

    Settings/开发者选项/调试GPU过度绘制要将红色改为蓝色 Settings/开发者选项/调试GPU过度绘制...

  • Android 优化

    优化帧:开发者选项中,GPU呈现模式分析,分析柱状图。保证每帧在16ms内。开启过度绘制分析:降低布局层级、减少重...

  • UI绘制优化

    一、CPU与GPU的工作流程 二、卡顿原因分析 三、实战解决过度优化 四、过度绘制优化(主要减少GPU工作量) 1...

  • 过度绘制查看工具

    过度绘制查看工具在手机端的开发者选项里,有Overdraw监测工具,调试GPU过度绘制工具,其中颜色代表渲染的图层...

  • Android进阶之视图优化篇

    今天来分析一下视图优化,首先解释一下GPU过度绘制的概念,GPU过度绘制指的是在屏幕一个像素上绘制多次(超过一次)...

  • Android UI布局,优化过度绘制

    优化前: 如何发现和监控XML的过度渲染和绘制? 设置—>开发人员选项—>硬件—>调试GPU过度绘制,然后选择 显...

网友评论

      本文标题:性能优化工具-调试GPU过度绘制 & GPU呈现模式分析

      本文链接:https://www.haomeiwen.com/subject/uvmdyctx.html