我有一个项目,它可以随时间以不同的速度旋转2个心轴360度。我注意到它在模拟器上运行良好但是当我在设备上测试它时它明显变慢。在模拟器和设备上进行前3次完整旋转所需的时间是:
在模拟器上:7.0,7.2,7.2
On Device:19.3,19.5,19.7
本质上该项目有效,但我想找出为什么设备和模拟器之间存在如此大的差异,我认为CGContextRotateCTM可能是源。
答案 0 :(得分:1)
听起来不错。
不要忘记,当您运行模拟器时,您实际上正在编译本机代码以在您的本机x86硬件上运行。假设您的Mac运行速度比iPhone中的800MHz ARM芯片快 - 毫不奇怪它在模拟器中运行得更快。
如果您的应用程序需要确定性的时间安排,那么您需要做更多工作才能实现这一目标。这是人们使用诸如UIView动画定时,NSTimer调用或cocos2d帧间定时器之类的东西来为动画调用提供确定性时间。
如果你不这样做 - 当下一代设备出现更快的CPU时 - 你的应用程序将再次搞砸。
还记得他们曾经在PC上使用“Turbo”按钮来处理这个问题吗?! :-O