美文网首页
IOS屏幕卡顿原理

IOS屏幕卡顿原理

作者: 东旭39 | 来源:发表于2020-07-05 20:48 被阅读0次

屏幕撕裂

iOS设备保证画面流畅性需要尽量保持在60fps,即每秒需要更新60帧的画面,那么一帧画面就需要GPU和CPU在16.7ms内准备好要显示的数据。
当CPU+GPU处理时间超过16.7ms,由于垂直同步信号VSnyc的作用加在两帧中间,显示器不会去渲染只准备了一半的数据,不然会造成屏幕撕裂现象,因此屏幕中仍显示的是当前帧的数据,造成卡顿的现象。

苹果为了优化卡顿使用了垂直同步Vsync + 双缓冲区

  • 垂直同步Vsync信号:垂直同步信号类似于给帧缓冲区(显存)加同步锁。Vsync主要是为了防止屏幕撕裂现象。

  • 双缓冲区:为了解决撕裂现象,提出双缓冲区的解决方法。即准备两个缓冲区,将准备好的渲染数据依次交替放入两个缓冲区中。

掉帧

垂直同步Vsync信号+ 双缓冲区,解决了屏幕撕裂的问题。但是有会出现新的问题,由于一帧的计算时间超过16.7ms,则显示器不会渲染缓冲区中未准备好的渲染数据,仍保留当前的帧数据,从而造成掉帧现象。
因此又提出了三缓存区的方案。cpu和GPU闲置时间准备渲染数据


im1.png
  • CPU:运算/控制核心(负责的运算),文本的布局、UI计算、图片解码、图像的绘制(Core Graphics)等。
  • GPU:绘图运算的微处理器,纹理的渲染,适合做高并发运算、依赖度比较低的运算。

屏幕卡顿的原因

  1. CPU/GPU 渲染流水线耗时过长,掉帧
  2. 垂直同步VSync + 双缓冲区,以掉帧作为代价解决屏幕撕裂
  3. 三缓冲区:合理使用CPU/GPU减少掉帧次数

iOS中滑动优化方案

  • CPU
    1. 对象创建、调整、销毁
    2. 预排班(布局计算、文本计算)
    3. 预渲染(文本等异步绘制,图片编解码等)
      可以将这些操作放在子线程中。
  • GPU
    减少离屏渲染。
    视图混合:减少图层数。视图层级层层叠加,需要对每个图层的像素点进行大量计算

相关文章

  • IOS屏幕卡顿原理

    屏幕撕裂 iOS设备保证画面流畅性需要尽量保持在60fps,即每秒需要更新60帧的画面,那么一帧画面就需要GPU和...

  • android 性能优化

    1,app卡顿的原理,以及针对界面切换卡顿和屏幕滑动卡顿提出典型的解决思路 卡顿原理: 1)大多数手机的屏幕...

  • 性能优化

    1、应用卡顿的原理,以及针对界面切换卡顿和屏幕滑动卡顿提出典型的解决思路 卡顿原理: 1)大多数手机的屏幕刷新频率...

  • 性能优化:屏幕卡顿优化

    一、屏幕成像原理及屏幕卡顿原因二、屏幕卡顿优化三、定量监测屏幕FPS四、定位卡顿效果五、定位耗时代码六、果然好客服...

  • 卡顿检测资料

    微信iOS卡顿监控系统 卡顿方案思考 卡顿检测 移动端监控体系之技术原理 iOS性能检测

  • 性能优化

    面试题 CPU和GPU 屏幕成像原理 卡顿产生的原因 卡顿优化 - CPU 卡顿优化 - GPU 离屏渲染 卡顿检...

  • iOS的性能优化小小探究

    本文将从原理探究一下iOS出现界面出现卡顿的原因,以及给出适当的解决办法 一.屏幕显示原理 最早的CRT显示器...

  • iOS性能优化01 -- 卡顿优化

    在探讨iOS屏幕卡顿优化之前,首先我们来介绍屏幕成像的基本原理; CPU与GPU CPU:是计算机设备的运算中心与...

  • OpenGL了解渲染原理

    大纲 CPU与GPU的职责和区别 计算机渲染原理 屏幕成像与卡顿 iOS下的渲染框架 View 与 CALayer...

  • iOS原理(十)----性能优化

    iOS原理(十)----性能优化 1.卡顿优化 在屏幕成像的过程中,CPU和GPU起着至关重要的作用: CPU(C...

网友评论

      本文标题:IOS屏幕卡顿原理

      本文链接:https://www.haomeiwen.com/subject/fubvqktx.html