美文网首页
iOS 离屏渲染

iOS 离屏渲染

作者: 魔杰西 | 来源:发表于2020-07-07 18:03 被阅读0次

1.离屏渲染的概念

普通app在加载过程中,CPU跟GPU合作不断地将要渲染的内容存储在帧缓存区,屏幕也不断地从帧缓存区获取内容并显示出来,这是我们正常的过程。当GPU在帧缓存区之外额外开辟一个新的缓存区进行渲染操作,这样的方式叫做离屏渲染。

离屏顾名思义就是离开屏幕,因为我们所说的帧缓存区就是当前用于显示的屏幕缓存区,那在这之前如果有一些非得去做而又来不及去做的事情,就要放到屏幕缓冲区之外的缓存区里进行,处理完之后经过叠加等一些列操作再在屏幕缓存区显示,并不是直接从离屏缓存区显示到屏幕上。

2.离屏渲染什么时候会用到

像圆角,阴影,高斯模糊这些操作系统会自动触发离屏渲染,当某些效果会多次出现在屏幕上,我们想要提高效率的时候,就会手动使用离屏渲染来提前将它渲染,讲渲染结果保存在离屏缓存区以达到复用的目的,比如layer.shouldRasterize(光栅化)设置成YES。

3.离屏渲染也存在一些问题

离屏渲染需要开辟额外的存储空间,大量的离屏渲染会造成大的内存压力,从离屏缓存区到帧缓存区也需要时间,会发生掉帧问题。

我们在使用光栅化的时候也不是盲目的:

①如果layer不能被复用,不需要使用;

②如果layer是动态的,频繁修改的,比如动画,cell的复用,开启离屏渲染反而影响效率;

③离屏渲染的缓存内容有时间限制,如果100ms内没有被使用,那么它就会被丢弃,无法进行复用;

④离屏渲染缓存空间也是有限的,通常不能超过屏像素大小的2.5倍,否则就会失效。

相关文章

  • iOS离屏渲染

    iOS-离屏渲染详解关于iOS离屏渲染的深入研究关于离屏渲染这两片文章分析的很详细。 渲染过程 根据渲染流水线示意...

  • iOS离屏渲染解析

    iOS离屏渲染解析

  • iOS圆角的离屏渲染,你真的弄明白了吗

    iOS圆角的离屏渲染,你真的弄明白了吗iOS圆角的离屏渲染,你真的弄明白了吗

  • iOS-离屏渲染探索

    iOS项目性能优化时,不得不提到离屏渲染,为了提升性能,我们要求尽量减少离屏渲染的发生。 那,什么是离屏渲染?离屏...

  • iOS离屏渲染的检测和优化

    在iOS离屏渲染介绍了离屏渲染的逻辑和原理,我们知道离屏渲染对于性能会有较大的消耗,那么开发中怎么避免产生离屏渲染...

  • iOS离屏渲染相关值得看的博客

    博客链接 iOS离屏渲染优化 绘制像素到屏幕上 关于iOS离屏渲染的深入研究 https://texturegro...

  • 三、iOS离屏渲染

    iOS离屏渲染 圆角不一定会造成离屏渲染 GPU屏幕渲染方式 On-Screen Rendering 当前屏幕渲染...

  • iOS性能优化之图片圆角

    在Apple官方文档中多次提出开发时,避免触发离屏渲染效果.离屏渲染触发的情况有很多种,具体可参考iOS离屏渲染相...

  • 离屏渲染

    离屏渲染是在iOS开发过程中脱离不了的话题,那么什么是离屏渲染以及哪些情况会导致离屏渲染呢?以及离谱渲染有哪些优势...

  • iOS中的离屏渲染相关

    开场白 本文简单介绍了iOS中离屏渲染的相关内容呢。 1.什么是离屏渲染: 要了解离屏渲染,我们先简单了解一下非离...

网友评论

      本文标题:iOS 离屏渲染

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