CPU
加载资源,对象创建,对象调整,对象销毁,布局计算,Autolayout,文本计算,文本渲染,图片的解码, 图像的绘制(Core Graphics)都是在CPU
上面进行的。
GPU
GPU
是一个专门为图形高并发计算而量身定做的处理单元,比CPU
使用更少的电来完成工作并且GPU
的浮点计算能力要超出CPU
很多。
GPU
的渲染性能要比CPU
高效很多,同时对系统的负载和消耗也更低一些,所以在开发中,我们应该尽量让CPU
负责主线程的UI
调动,把图形显示相关的工作交给GPU
来处理,当涉及到光栅化等一些工作时,CPU
也会参与进来,这点在后面再详细描述。
相对于CPU
来说,GPU
能干的事情比较单一:接收提交的纹理(Texture)和顶点描述(三角形),应用变换(transform)、混合(合成)并渲染,然后输出到屏幕上。通常你所能看到的内容,主要也就是纹理(图片)和形状(三角模拟的矢量图形)两类。
CPU 和 GPU 的协作
由上图可知,要在屏幕上显示视图,需要
CPU
和GPU
一起协作,CPU
计算好显示的内容提交到GPU
,GPU
渲染完成后将结果放到帧缓存区,随后视频控制器会按照 VSync
信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。