何为失帧

界面显示的原理

iOS设备通常是60fps(每秒60帧),也就是说两帧相隔的时间是1/60秒,大概16.7ms。在这16.7ms中,为了显示一帧,需要如下工作:

CPU计算好各个视图的位置,大小,对图片进行解码等,绘制成纹理交给GPU.
GPU对收到的纹理进行混合,顶点变换,渲染到帧缓冲区.
每16.7ms,一个时钟信号到达,帧缓冲区取出一帧,显示到屏幕.
也就是说,CPU或者GPU被大量占用的时候,都有可能在16.7ms中没办法完成一帧的绘制,导致时钟信号到来的时候,取得还是上一帧的内容,也就都有可能导致界面卡顿.
因为一直显示上一帧的内容, 手在滑动, 却困在原地, 就产生了卡顿的感觉.

你可能感兴趣的:(何为失帧)