CoreAnimation 性能分析 - CAReplicatorLayer 和 CAShapeLayer
Posted
技术标签:
【中文标题】CoreAnimation 性能分析 - CAReplicatorLayer 和 CAShapeLayer【英文标题】:CoreAnimation performance profiling - CAReplicatorLayer with CAShapeLayer 【发布时间】:2014-03-03 20:19:13 【问题描述】:我正在制作一个依赖 CoreAnimation 的应用。它有一个 CAReplicatorLayer 和一个 CAShapeLayer 作为子层。 当有 12 次复制然后为路径设置动画时(在 touchMoved 上更改它),一旦图形在屏幕上变大(大约 12-20 fps),FPS 就会显着降低。
时间分析器显示大约 10% 的 CPU 利用率,Open GL ES 驱动程序分析器报告大约 90-97% 的“渲染利用率”和 40-50% 的“Tiler 利用率”。
本指南解释了这两个词,但没有很详细。谁能解释一下这两个到底是什么? Apple Docs
显然高渲染利用率是问题所在,那么我该如何提高性能呢?
【问题讨论】:
你能告诉我们你是如何改变路径的吗?您是附加到现有路径还是从点集合重新创建路径?这些路径上有动画吗? 每次我从一组线和弧中更改路径时,我都会重新创建路径。尽管感谢您查看我的问题,但我同时解决了它! :) 【参考方案1】:解决方案是从屏幕上移除所有透明的 UI 元素(或将它们设置为不透明)。
当在具有透明度的 UI 元素下方或上方渲染动画 CAShapeLayer 时,填充率会受到很大影响。
优化后,渲染利用率下降到 30-40%。
【讨论】:
以上是关于CoreAnimation 性能分析 - CAReplicatorLayer 和 CAShapeLayer的主要内容,如果未能解决你的问题,请参考以下文章