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的主要内容,如果未能解决你的问题,请参考以下文章

不care工具,在大数据平台中Hive能自动处理SQL

CoreAnimation (CALayer 动画)

CoreAnimation

You Gotta Care About the Code

CloudKit CoreAnimation 错误

CoreAnimation汇总