在屏幕成像的过程中,CPU和GPU起着至关重要的作用

CPU: Central Processing Unit 中央处理器

对象的创建和销毁,对象属性的调整,布局计算,文本的计算和排版,图片的格式转换和解码,图像的绘制Core Graphics

GPU: Graphics Processing Unit, 图形处理器

纹理的渲染

CPU –计算–> GPU –渲染–> 帧缓存 –读取–> 视屏控制器 –显示–> 屏幕

在iOS中是双缓冲机制,有前帧缓存,后帧缓存

卡顿产生的原因

CPU计算和GPU渲染如果时间过长,那么垂直信号(VSync)渲染到屏幕上的图形仍然是上一次的界面.

卡顿解决的主要思路: 尽可能减少CPU,GPU资源消耗

按照60FPS的刷帧率,每隔16ms就会有一次VSync信号

针对CPU的优化

针对GPU的优化

离屏渲染

在OpenGL中,GPU有2种渲染方式

离屏渲染消耗性能的原因

哪些操作会触发离屏渲染?

卡顿检测

平时所说的卡顿,主要是在主线程执行了比较耗时的操作

可以添加Observer到主线程RunLoop中,通过监听RunLoop状态切换的耗时,以达到监控卡顿的目的;

示例项目 LXDAppFluecyMonitor