美文网首页
我对离屏渲染的理解

我对离屏渲染的理解

作者: Dravenn | 来源:发表于2018-09-04 10:36 被阅读14次

关于离屏渲染

一直觉得很多离屏渲染的文章说得不明不白。

问题1:离屏渲染是时刻存在着,还是页面滚动的时候才存在着。

看了很多文章,结合instrument测试fps谈谈我的理解。

instrument测试fps的时候,只有滑动scrollView的时候,fps才会大于0,不滑动的时候fps等于0。我把这特性理解为:只有屏幕显示的内容是动态的时候,GPU才会渲染。渲染又分屏幕渲染和离屏渲染,离屏渲染耗费的性能要更大,因为要创建一个新的缓冲区,并进行上下文切换(这两步才是最耗性能的两步),所以过多的离屏渲染操作(例如cornerRadius+masksToBounds操作)就会产生卡顿。所以我理解为离屏渲染是在页面内容在刷新的时候(例如滑动scrollView、tableview.reloadData,DrawRect绘制等操作)才存在着。

然后,当设置shouldRasterizep属性为YES的时候,耗时的图层绘制会被缓存,如果对应的layer及其sublayers没有发生改变,在下一帧的时候可以直接复用。

问题来了,如果页面不滚动,fps等于0,就不会有下一帧,缓存就用不上,那么我缓存的图层有什么用?后来我想明白了,例如tableview.reloadData,DrawRect等方法重新绘制页面,刷新页面,如果对应的layer及其sublayers没有发生改变,就能使用缓存,如果改变了,就会再生缓存,反而加大性能的损耗。所以设置shouldRasterizep属性为YES需谨慎

相关文章

  • 离屏渲染

    什么是离屏渲染? 对离屏渲染的理解。 在屏渲染 On-Screen Rendering GPU的渲染操作是在当前用...

  • UI离屏渲染

    什么是离屏渲染,你对离屏渲染是怎么理解的? 先看在屏渲染概念: 可以说在屏渲染指的GPU层面的一个概念。那么离屏渲...

  • 我对离屏渲染的理解

    关于离屏渲染 一直觉得很多离屏渲染的文章说得不明不白。 问题1:离屏渲染是时刻存在着,还是页面滚动的时候才存在着。...

  • Offscreen Rendering

    Offscreen Rendering(离屏渲染)概念理解: 离屏渲染 是指系统为了绘制圆角(cornerRadi...

  • iOS 离屏渲染认知及解决方案

    离屏渲染 要理解离屏渲染,需要先了解两个名词,OffScreen Buffer(离屏缓冲区),Frame Buff...

  • 离屏渲染理解

    1. OpenGL中,GPU屏幕渲染有以下两种方式 On-Screen Rendering 当前屏幕渲染: 是GP...

  • iOS--离屏渲染

    离屏渲染(Offscreen rendering) 离屏渲染的定义 离屏渲染(offscreen-renderin...

  • 优化之离屏渲染

    这篇文章主要是总结一下我对离屏渲染的理解,之前一直不太理解离屏渲染到底是个什么,也不太理解为什么他会引起滚动界面卡...

  • 关于离屏渲染

    1.什么是离屏渲染 2.离屏渲染的触发方式 3.离屏渲染的意义 4.离屏渲染的不足 1.什么是离屏渲染 要了解离屏...

  • 图层性能-离屏渲染、光栅化等

    一.离屏渲染 1.在屏渲染、离屏渲染: On-Screen Rendering/在屏渲染:在屏渲染:指的是GPU的...

网友评论

      本文标题:我对离屏渲染的理解

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