iOS 高级面试题。

1.GPU渲染管线有那些过程?

1.顶点着色
2.图元装配
3.光栅化
4.片段处理
5.片段着色

2. UI 卡顿、掉帧的原因

在规定的16.7毫秒内,在下一帧来之前VSysc信号来之前,
cpu和GPU 并没有共同完成下一个页面的画面合成,就会导致卡顿和掉帧。

3.基于tableview滑动优化方案

一般我们对cup 工作压力减轻,减少运算复杂度,节整cup的时间。
cpu 方案 :
1. 对于 cup 对对象创建,调整, 销毁 我们可以放到子线程运行。
2. 对于UI 的预排, 比如 (布局计算, 文本计算)全部放到子线去做,
3.预渲染 (文本等异步绘制,图片编码等)
Gpu 方案 :
1. 比如对纹理的渲染
2. 避免GPU离屏渲染
3. 减轻视图混合复杂性
4. cup 的异步绘制图像。

4.离屏渲染

概念:

指的是GpU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。

通俗:
当我们设置某一些UI 视图的图层属性标记为未被合成之前不能用于直接显示的时候那么就屏渲染

5.在什么时候触发离屏渲染

1.当我们设置圆角的时候 (注意: 当和maskToBounds一起使用的时候才会离屏渲染)
2.图层阴影的设置

  1. 层蒙版
    4.光栅化的设置

6.为何要避免离屏渲染?

1.离屏渲染 会增加GPU 的工作量, cpu 和 GPU 工作量耗时加起来超过16.7毫秒

也可以下面回答

  1. 离屏渲染会多创建的渲染缓冲区,增加内存开销工作。
  2. 会用到多通道图像合成需要上下文切换。

7.UIView 和CALayer 是什么关系?

UIView 是专门为视图事件专递和事件响应的,而CALayer 全员为视图显示内容的工作。用到了六套原则单一职责原则。

你可能感兴趣的:(iOS 高级面试题。)