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

tbo*_*e12 10 core-animation uiscrollview ios xcode-instruments

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

截图http://oi59.tinypic.com/11goi01.jpg

我有根据的猜测是,这就是核心动画层被发送到GPU的方式,并且可以通过减少CALayer必须呈现的s 的维数和/或数量(即必须发送到的数据量)来加速这一点.GPU).

mah*_*tin 4

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

  • CALayers 的布局:layoutSublayers、preferredFrameSize、CALayoutManager
  • 所有CAAction的
  • 有时还渲染 CALayer 的各种过滤器属性
  • 可能是滚动视图中子视图的布局