美文网首页
混合和过度绘制

混合和过度绘制

作者: Crazy2015 | 来源:发表于2017-05-18 17:16 被阅读17次

GPU每一帧可以绘制的像素有一个最大限制(就是所谓的fill rate),这个情况下可以轻易地绘制整个屏幕的所有像素。但是如果由于重叠图层的关系需要不停地重绘同一区域的话,掉帧就可能发生了。

GPU会放弃绘制那些完全被其他图层遮挡的像素,但是要计算出一个图层是否被遮挡也是相当复杂并且会消耗处理器资源。同样,合并不同图层的透明重叠像素(即混合)消耗的资源也是相当客观的。所以为了加速处理进程,不到必须时刻不要使用透明图层。任何情况下,你应该这样做:
  • 给视图的backgroundColor属性设置一个固定的,不透明的颜色

  • 设置opaque属性为YES

    这样做减少了混合行为(因为编译器知道在图层之后的东西都不会对最终的像素颜色产生影响)并且计算得到了加速,避免了过度绘制行为因为Core Animation可以舍弃所有被完全遮盖住的图层,而不用每个像素都去计算一遍。

    如果用到了图像,尽量避免透明除非非常必要。如果图像要显示在一个固定的背景颜色或是固定的背景图之前,你没必要相对前景移动,你只需要预填充背景图片就可以避免运行时混色了。

    如果是文本的话,一个白色背景的UILabel(或者其他颜色)会比透明背景要更高效。
    最后,明智地使用shouldRasterize属性,可以将一个固定的图层体系折叠成单张图片,这样就不需要每一帧重新合成了,也就不会有因为子图层之间的混合和过度绘制的性能问题了。

相关文章

  • 混合和过度绘制

    GPU每一帧可以绘制的像素有一个最大限制(就是所谓的fill rate),这个情况下可以轻易地绘制整个屏幕的所有像...

  • iOS核心动画高级技巧十二(图像IO)

    目录 隐式绘制离屏渲染混合和过度绘制减少图层数量总结 本章将着重图层树本身,以发掘最好的性能。 一 隐式绘制 寄宿...

  • Android性能优化-过度绘制解决方案

    颜色与过度绘制: 原色:没有过度绘制 蓝色:1 次过度绘制 绿色:2 次过度绘制 粉色:3 次过度绘制 红色:4 ...

  • 过度渲染优化

    1. 查看代码过度绘制 手机设置 -> 开发者选项 -> 调试GPU过度绘制绿色:正常;红色:过度绘制; ...

  • Android UI布局,优化过度绘制

    优化前: 如何发现和监控XML的过度渲染和绘制? 设置—>开发人员选项—>硬件—>调试GPU过度绘制,然后选择 显...

  • Android UI渲染优化

    Android UI渲染优化 1. 过度绘制优化 什么是过度绘制? Overdraw(过度绘制)描述的是屏幕上的某...

  • OC调用Charts绘制图表--CombinedChartVie

    折线与单系列柱状图混合图表绘制数据处理赋值 效果图如下: 混合图表绘制套路基本和折线、柱状图绘制相同,主要有俩点,...

  • Android性能优化

    1.如何避免过度绘制(Overdraw) 应用可能会在单个帧内多次绘制同一个像素,这种情况称为“过度绘制”。过度绘...

  • 过度绘制

    过度绘制:1)移除布局中不需要的背景2)使视图层次结构扁平化3)降低透明度 Lint工具:排查视图层次结构中的低效...

  • 4. 定位过度绘制的代码

    方法一 打开"调试过度绘制"后,直接根据界面颜色估计存在过度绘制的代码 方法二 打开"调试过度绘制"后,根据界面颜...

网友评论

      本文标题:混合和过度绘制

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