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 全员为视图显示内容的工作。用到了六套原则单一职责原则。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,800评论 1 32
  • iOS视图成像理论及优化 CRT屏幕成像 CRT(阴极射线管)显示器电子枪,电子枪从屏幕的左上角的第一行开始,从左...
    Jacky_Yang阅读 5,885评论 1 6
  • 看到一篇关于讲列表优化,讲的很好,特转摘过来。原文链接 这一篇文章是iOS性能优化系列文章的的第二篇,主要内容是关...
    林伟彦笔记阅读 6,343评论 1 23
  • 春雪——猪猪的最爱 太阳公公从东方缓缓地升起,那红色的光辉染红了整片大地。大地像饱饮了玫瑰酒似的醉醺醺的,金红一片...
    牵着小猪去散步阅读 1,664评论 0 5
  • (仄起平收,平水韵十灰) 四月杨梅舒舌觉, 枝垂顶瑞晓尘开。 安平人间凝眉事, 观尽春秋拂念哀。
    摩诘梵心阅读 3,853评论 3 9