升级到XCode 4.3后FPS掉线

时间:2012-04-25 17:33:24

标签: xcode performance vbo frame-rate

我希望其他人经历过这种情况,然后找到解决方案,因为我要沮丧地点燃自己的头发。

简单地说,我正在使用XCode 3.2.6和SDK 4.2创建一个Cocos2D应用程序。我相信,我使用两种设备进行测试:iPhone 3GS和iPhone 4,两者都在IOS 4.2上。在任一设备上进行测试时,我都获得了稳定的60 FPS性能。

当我升级到XCode 4.2时,灾难首次出现。没有问题,我能够直接打开我的项目到这个新版本并运行它。除了我现在在XCode 4.2中,一切都是一样的。令我震惊和恐惧的是,我发现我现在正在45到50范围内获得FPS,并且它有时会下降到30年代,之前都没有发生过。

此时我决定升级到Lion,XCode 4.3和SDK 5.1。不幸的是,这没有任何改变。

然后我将这两款手机升级到最新的IOS,但仍然存在性能问题。

最后,我升级到最新版本的Cocos2D,但无济于事。

我尝试了许多补救措施,包括发布与调试模式,编译器设置等。没有任何帮助。

我发现了一些可能暗示的内容,但我对Open GL ES的了解还不够,因为它很有意义。在另一个论坛上有人抱怨同样的问题,并说如果他们禁用了顶点缓冲区对象(VBO)支持,它就解决了这个问题。我发现在Cocos2D中启用了它,禁用它,令我惊讶的是我恢复到60 FPS。该应用程序的性能不如在XCode 3.2.6下编译时那么强,但在XCode 4.3下禁用VBO支持要好得多。这个问题是不建议禁用VBO支持,因为它可以在启用时提高性能。

我所做的一些测试似乎指出图形是问题所在。当应用程序进入45 FPS范围时,我只有12到20个精灵在屏幕上移动。如果我删除这些精灵并允许其他所有内容继续运行,即使启用了VBO,我也会回到60 FPS。当我在XCode 3.2.6下进行开发时,我有时会有100多个精灵移动(在视图和视线中),并且FPS保持在60.

所以简而言之(对不起,为时已晚),有没有人知道在通过XCode 3.2.6编译时,完全相同的代码如何运行良好,但在XCode 4.3下却非常糟糕?我尝试了许多不同的编译器设置无济于事。我的猜测是,在某个地方有一些简单的设置可能默认为XCode 3和XCode 4之间的不同值。

我很绝望,所以请传递你可能有的任何想法。

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否可以让Xcode更新您的项目设置?你有没有从Xcode 4.3发布之前回到已知的好版本并确认它很慢?