经典面试题将来跳槽用

经典面试题30 - 离屏渲染

2018-04-16  本文已影响35人  豆志昂扬

问题

请解释什么是离屏渲染?

解答

离屏渲染是GPU屏幕渲染的一种,一般可以分为三种类型:

GPU内置支持的内容包括View的拼接(Compositing)、纹理的渲染(Texture)等。

当前屏幕渲染不需要额外创建新的缓存,也不需要开启新的上下文,相对于离屏渲染性能更好。但是受当前屏幕渲染的局限因素限制(只有自身上下文、屏幕缓存有限等),当前屏幕渲染有些情况下的渲染解决不了的,就使用到离屏渲染。

相比于当前屏幕渲染,离屏渲染的代价是很高的,主要体现在两个方面:

离屏渲染的整个过程,需要多次切换上下文环境:先是从当前屏幕切换到离屏,等到离屏渲染结束以后,将离屏缓冲区的渲染结果显示到屏幕上,而上下文环境的切换是要付出很大代价的。

既然离屏渲染这么耗性能, 为什么有这套机制呢?
因为图层属性的混合体没有预合成之前不能直接在屏幕中绘制,而需要在别的地方做额外的处理预合成。所以就需要屏幕外渲,不论是CPU还是GPU。

由于屏幕渲染很消耗性能,使用不当会造成应用卡顿,从而影响用户体验。
在iOS开发中,设置了以下属性时,就会触发离屏绘制,使用时要特别小心。

更多

经典面试100题 - 持续更新中

获取更多内容请关注微信公众号豆志昂扬:

上一篇下一篇

猜你喜欢

热点阅读