CGContextRotateCTM вращается на разных скоростях вращения на симуляторе и устройстве? - PullRequest
0 голосов
/ 31 октября 2010

У меня есть проект, в котором он вращает 2 шпинделя на 360 градусов на обеих скоростях с течением времени. Я заметил, что он хорошо работает на симуляторе, но когда я тестирую его на устройстве, он значительно медленнее. Время, необходимое для выполнения первых 3 полных вращений на симуляторе и устройстве:

На симуляторе: 7,0, 7,2, 7,2

На устройстве: 19,3, 19,5, 19,7

По сути, проект работает, но я хотел бы выяснить, почему между устройством и симулятором такая большая разница, и я подумал, что CGContextRotateCTM может быть источником.

1 Ответ

1 голос
/ 31 октября 2010

Звучит правильно.

Не забывайте, что когда вы запускаете симулятор, вы на самом деле компилируете нативный код для запуска на нативном оборудовании x86.Предполагая, что ваш Mac работает быстрее, чем 800-МГц ARM-чип в iPhone - неудивительно, что он будет работать быстрее в симуляторе.

Если вам нужно детерминированное время в вашем приложении, вам потребуется больше работы для достижения этого.Именно здесь люди используют такие вещи, как время анимации UIView, вызовы NSTimer или межкадровые таймеры cocos2d, чтобы дать детерминированное время своим вызовам анимации.

Если вы этого не сделаете - когда устройство следующего поколения выйдет сболее быстрый процессор - ваше приложение снова будет испорчено.

Помните, когда раньше на ПК были кнопки "Турбо", чтобы справиться с этим ?!: -О

...