掉帧是为了解决图像撕裂而产生的问题。
什么是图像撕裂?
图像撕裂就是在屏幕从帧缓冲区读取到的图片有一部分是新的数据,有一部分是旧的图像数据,在显示的时候就会发生图像撕裂。
苹果如何解决图像撕裂?
苹果使用 垂直同步(Vsync) + 双缓冲区(Double Buffer) 来解决图像撕裂问题。由于垂直同步,从而产生了掉帧的问题。
掉帧
由于CPU和GPU在合作解压渲染图片的时候,没有及时的把新的数据存储到帧缓冲区里面,导致了掉帧(屏幕上还是显示了前一张图片数据,即重复显示) 。
掉帧的优化
使用双缓冲区、三缓冲区(A显示屏幕,B、C渲染好数据)。但是这些都并不能完全解决掉帧问题,只能尽力减少掉帧的出现。
总结一下就是:
1、CPU/GPU渲染流水线耗时过长,导致图像撕裂。
2、使用 垂直同步(Vsync)解决图像撕裂导致掉帧。
3、使用双缓冲区、三缓冲区合理的使用CPU/GPU减少掉帧次数。
注:苹果使用的是 垂直同步(Vsync)+ 双缓冲区