0

我正在测试我的 iPhone 应用程序的性能:

// using CATransaction like this goes from 14fps to 19fps
[CATransaction begin];
[CATransaction setDisableActions: YES];

// NEG, as coord system is flipped/messed up
self.transform = CGAffineTransformMakeRotation(-thetaWheel);

[CATransaction commit];

问题:为什么禁用核心动画在新旧变换矩阵之间进行插值的默认行为会带来这样的性能提升?

他们可能在做什么,计算量如此之大?即使他们使用世界上最精细的技术在两个矩阵之间进行插值,我也不敢相信这会达到 5fps?!

我无法想象这个过程不是 M_resultant = k*M_last + (1.-k)*M_target

4

1 回答 1

0

在两个位置之间进行插值会创建 CAAnimations,它必须按帧应用并在渲染线程和主线程之间同步。

交易成本与您一次制作动画的层数有关;尝试分析您的应用程序以查看瓶颈是什么。

于 2011-05-11T04:21:38.780 回答