У меня есть NSTimer, который работает на частоте 60 Гц. С загруженной и рендеринговой сценой OpenGL моя игра может получить 60 кадров в секунду, непрерывную работу в течение всего дня. Затем, если я пойду перекомпилирую приложение или перезагрузлю его, оно получит 40 кадров в секунду. Те же ресурсы загружены. Я сталкивался с этой проблемой в течение многих лет, и я просто хочу знать, почему. Это безумие, и я хочу знать, должен ли я просто отказаться от этого глупого Таймера. Условия не отличаются на моем 3GS между нагрузками. Иногда он будет получать 40 кадров в секунду. Очевидно, что тактовая частота не различается между нагрузками, поэтому показатели производительности должны быть постоянными при постоянной сцене. Вот журнал моей частоты кадров:
Хороший груз:: -)
FrameRate: 61
FrameRate: 61
FrameRate: 61
FrameRate: 60
FrameRate: 60
FrameRate: 61
FrameRate: 60
FrameRate: 60
FrameRate: 61
FrameRate: 60
FrameRate: 61
Теперь я пойду дальше и ничего не буду делать, перекомпилирую и выполню:
FrameRate: 43
FrameRate: 50
FrameRate: 45
FrameRate: 48
FrameRate: 40
FrameRate: 45
FrameRate: 42
FrameRate: 41
FrameRate: 42
FrameRate: 44
FrameRate: 41
FrameRate: 46
^ - Огромная разница визуально. Что, черт возьми, может вызвать это?
ЖЕ область сцены, ЖЕ настройка камеры. Переменные не отличаются.
[Редактировать] Некоторые упоминали, что музыка, не исполняемая в аппаратном декодере, может вызвать это, и что иногда декодер НЕ вступает во владение, даже если вы установили его на. Однако могу сказать, что даже при отключенной музыке такое случается [/ Edit]