面试复习-优化,离屏渲染

  1. uiview 和 layer的区别
    uiview 提供内容,负责触摸事件,参与响应链
    CALayer 负责显示contents

  2. 如何优化
    CPU

  3. 对象创建 调整销毁

  4. 预先 布局计算 文本计算

  5. 预渲染 (文本绘制,图片解码)
    GPU

  6. 离屏渲染 纹理渲染

  7. 视图混合

  8. 异步绘制
    异步绘制
    layer.delegate displayLayer
    子线程代理生成对应bitmap(core grap方法),主线程layer.cnotext=bitmap,

  9. 离屏渲染
    离屏渲染原因:https://zhuanlan.zhihu.com/p/72653360 对于每一层layer,要么能找到一种通过单次遍历就能完成渲染的算法,要么就不得不另开一块内存,借助这个临时中转区域来完成一些更复杂的、多次的修改/剪裁操作。
    在屏渲染,GPU在当前屏幕缓冲区
    离屏渲染,GPU在当前缓冲区外新开辟一个缓冲区

  10. 圆角 & masktoBounds

  11. 图层蒙版

  12. 阴影

  13. 光栅化
    问题:

  14. 增加GPU工作量,掉帧

  15. 新缓冲区,内存开销

  16. 上下文切换

你可能感兴趣的:(面试复习-优化,离屏渲染)