面试题

你在项目中是怎么优化内存的

有遇到过tableview卡顿情况吗? 会造成卡顿的原因大致有哪些?

列表卡顿的原因可能有哪些?你平时是怎么优化的?

优化从哪些方面着手

我们先来了解一下CPU 和GPU

  • 在屏幕成像的过程中,CPU和GPU起着至关重要的作用
  • CPU主要负责 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)
  • GPU 负责 纹理的渲染 纹理就是显示屏幕上的数据格式
    我们要把数据显示在屏幕上是需要CPU和GPU一起协作
计算
渲染
读取
显示
CPU
GPU
帧缓存区
视频控制器
屏幕

CPU它是负责计算,比如说屏幕显示的文字在什么位置显示,用什么颜色,以及图片解码都是CPU的工作。
GPU就会将CPU计算好的数据进行渲染,只有经过GPU渲染过的数据才能显示在屏幕中,也就是CPU直接算出来的数据,是无法显示在屏幕中的。因为屏幕要想显示数据是需要一定数据格式的,所以GPU就将CPU计算出来的数据渲染成可以显示在屏幕上的数据,GPU就将渲染出来的数据缓存到 帧缓存区 中 ,视频控制器就从帧缓存区里面读取数据, 视图控制器就读取出来的数据显示在屏幕中
在iOS中是双缓存机制,有前帧缓存、后帧缓存,这样就可以使两个缓存区交替使用,提高效率

屏幕成像原理

显示器要显示一帧数据之前,会发出垂直同步信号(Vsync),一旦发出这个垂直同步信号,它就要显示这一页的数据。首先,会发出水平同步信号 HSync ,
就是要显示一帧数据前,要先发出一个垂直同步信号 ,然后 发出 水平同步信号 ,一行一行显示,直到最后一行显示出来,之后再发出一个垂直同步信号。如果把每一帧的数据连起来就形成了动画的效果

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐