我有一个运行频率为 60hz 的 NSTimer。加载和渲染 OpenGL 场景后,我的游戏可以全天稳定地获得 60fps。然后如果我去重新编译应用程序或重新加载它,它将获得 40fps。加载相同的资源。我多年来一直遇到这个问题,我只想知道为什么。这太疯狂了,我想知道我是否应该放弃这个愚蠢的计时器。我的 3GS 负载之间的情况没有什么不同。有时它只会达到40fps。显然,负载之间的时钟速率没有差异,因此性能数据应该在恒定场景下保持恒定。这是我的帧率日志:
一个很好的负载::-)
帧率:61 帧率:61 帧率:61 帧率:60 帧率:60 帧率:61 帧率:60 帧率:60 帧率:61 帧率:60 帧率:61
现在,我将继续什么都不做,重新编译并运行:
帧率:43 帧率:50 帧率:45 帧率:48 帧率:40 帧率:45 帧率:42 帧率:41 帧率:42 帧率:44 帧率:41 帧率:46
^- 视觉上的巨大差异。飞天到底是什么原因造成的?
相同的场景区域,相同的相机设置。没有变量是不同的。
[编辑] 有人提到,音乐未在硬件解码器中运行会导致这种情况,有时即使您设置解码器也不会接管。但是,我可以说即使禁用了音乐,这种情况也会发生 [/Edit]