面试总结 - 离屏渲染

如何检测离屏渲染?

1、模拟器debug-选中color Offscreen - Renderd离屏渲染的图层高亮成黄 可能存在性能问题
2、真机Instrument-选中Core Animation-勾选Color Offscreen-Rendered Yellow

离屏渲染的触发方式

  • 圆角 (maskToBounds并用才会触发)
  • 图层蒙版
  • 阴影
  • 光栅化
为什么要避免离屏渲染?

离屏渲染是在GPU上产生的,会触发openGL的多通道渲染管线,造成了额外的开销.有可能会导致cpu+gpu>16.7ms内不能完成一帧的计算,会导致屏幕的卡顿或掉帧.
离屏渲染会开辟新的缓存区,会进行上下文的切换,增加GPU的渲染时间,有可能会导致屏幕卡顿.

离屏渲染消耗性能的原因

需要创建新的缓冲区
离屏渲染的整个过程,需要多次切换上下文环境,先是从当前屏幕(On-Screen)切换到离屏(Off-Screen);等到离屏渲染结束以后,将离屏缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕

发布了207 篇原创文章 · 获赞 19 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/songzhuo1991/article/details/104883764