升级到XCode后的FPS丢失4.3

问题描述:

我希望别人已经经历了这一点,随后找到了解决方案,因为我正在挫败中点燃自己的头发。升级到XCode后的FPS丢失4.3

简单地说,我是用了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之间的不同值。

我很绝望,所以请传递您的任何想法。

谢谢!

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

+0

升级到XCode 4.2后,我打开了现有的项目。我记得XCode想验证我的设置,我允许它做。如果在这个过程中它做出了改变,我不能说这些具体是什么。你能否澄清你的第二个问题。当你说“回滚到已知的好版本”时,你是指我的项目版本还是XCode版本?升级到XCode 4.2后,我的项目才开始缓慢运行。除了最初在XCode 4.2中打开它之后项目设置发生的任何变化之外,这是唯一的变化。 – Pluvius 2012-04-25 18:03:12

+0

您指的是Xcode的提示“验证设置”,如果您愿意,它确实会进行更改。我所说的是,你应该从Xcode 4.2发布之前回到你的应用程序的早期版本,并且看看它是否表现出这些问题*没有做任何改变。 – Jim 2012-04-26 16:22:59

+0

我从几个月前抓起一个版本。我在Xcode 4中打开它,但这次它没有问我有关验证设置的任何事情。不知道为什么像上次那样。总之,存在同样的问题。运行速度比在Xcode 3下慢得多。如果我禁用VBO支持,性能会更好。这么奇怪。如果您有其他想法,请告诉我。谢谢你的帮助。 – Pluvius 2012-04-27 03:09:09