CA :: Transaction :: commit()中的瓶颈

时间:2014-06-05 23:01:08

标签: ios uiscrollview core-animation xcode-instruments

在与UIScrollView(包含许多子视图)的互动中使用时间分析器时,我经常会在最重的堆栈跟踪中看到CA::Transaction::commit()。这种方法是什么,我怎样才能花更少的时间?

Screenshot http://oi59.tinypic.com/11goi01.jpg

我有根据的猜测是,核心动画层是如何发送到GPU的,这可以通过减少必须呈现的CALayer的维度和/或数量来加速(即数量)必须发送到GPU的数据。)

1 个答案:

答案 0 :(得分:3)

你的猜测可能是正确的。请记住,通常也会在CATransaction::commit()

中完成以下事项
  • CALayers的布局:layoutSublayers,preferredFrameSize,CALayoutManager
  • 所有CAAction s
  • 有时候还会渲染CALayer的各种过滤器属性
  • 可能是滚动视图中的子视图的布局