前言
黄色的Control为控制器,用于协调控制整个CPU的运行,包括取出指令、控制其他模块的运行等;
绿色的ALU是算术逻辑单元,用于进行数学、逻辑运算;
橙色的Cache和DRAM分别为缓存和RAM,用于存储信息
从结构图可以看出,CPU的控制器较为复杂,而ALU数量较少。因此CPU擅长各种复杂的逻辑运算,但不擅长数学运算尤其是浮点运算
CPU与GPU工作流程
卡顿原因分析
Android系统每隔16ms发出VSYNC信号(1000ms/60=16.66ms),触发对UI进行渲染,如果每次渲染都成功,这样就能达到流畅棉花所需要的60fps。
当这一帧画面渲染时间超过16ms的时候,垂直同步机制会让显示器硬件等待GPU完成栅格化渲染操作,这样会让这一帧画面多停留16ms甚至更多,这样就造成了用户看起来画面停顿。
优化方向
解决卡顿从两方面入手:
(1)CPU减少xml转换成对象的时间
(2)GPU减少重复绘制的时间
GPU过度绘制的几种情况
(1)自定义控件中,onDraw方法做了好多重复绘制
(2)布局层次太深,重叠性太强。用户看不到的区域GPU也会渲染,导致耗时
工具的使用
Hierarchy Viewer目前已经处于废弃状态
绿: 表示该View的此项性能比该View Tree中超过50%的View都要快;例如,代表Measure的是绿点,意味着这个视图的测量时间快于树中的视图对象的50%
黄: 表示该View的此项性能比该View Tree中超过50%的View都要慢;
红: 表示该View的此项性能是View Tree中最慢的
Layout Inspactor
Lint建议