iOS中的掉帧问题

掉帧是为了解决图像撕裂而产生的问题。

什么是图像撕裂?

图像撕裂就是在屏幕从帧缓冲区读取到的图片有一部分是新的数据,有一部分是旧的图像数据,在显示的时候就会发生图像撕裂。

苹果如何解决图像撕裂?

苹果使用 垂直同步(Vsync) + 双缓冲区(Double Buffer) 来解决图像撕裂问题。由于垂直同步,从而产生了掉帧的问题。

掉帧

由于CPU和GPU在合作解压渲染图片的时候,没有及时的把新的数据存储到帧缓冲区里面,导致了掉帧(屏幕上还是显示了前一张图片数据,即重复显示) 。

掉帧的优化

使用双缓冲区、三缓冲区(A显示屏幕,B、C渲染好数据)。但是这些都并不能完全解决掉帧问题,只能尽力减少掉帧的出现。

总结一下就是:

1、CPU/GPU渲染流水线耗时过长,导致图像撕裂。

2、使用 垂直同步(Vsync)解决图像撕裂导致掉帧。

3、使用双缓冲区、三缓冲区合理的使用CPU/GPU减少掉帧次数。

注:苹果使用的是 垂直同步(Vsync)+ 双缓冲区

你可能感兴趣的:(iOS中的掉帧问题)