【发布时间】:2011-12-18 04:53:09
【问题描述】:
我知道以前有人问过这个问题,但没有人就如何解决这个问题给出任何有用的答案。我有一个使用 box2d 物理引擎的 cocos2d ios 应用程序。我对其进行了性能测试,cpu 将 5.6% 的时间花在了 mach_msg_trap 上。从我从其他问题中收集到的信息来看,mach_msg_trap 似乎只是由于您的应用程序空闲而导致的主线程浪费时间。我的应用程序并没有空闲。它的性能不稳定,并且在 50 fps 区域内徘徊。有没有办法配置它以获得额外的性能?或者这只是我编写的一些错误代码的结果,如果是,我该如何优化它?
我正在 ipod touch 第二代的调试版本中测试性能。这可能是问题的一部分。我将某些东西分组在精灵批次中。但是有些精灵有不是 ccsprites 的孩子,所以我不能将所有东西分组在一个批次中。我确实创建了一个子弹池,而不是不断地分配和释放它们。但这就是我表现不稳定的地方。当枪开始射击时,帧率会下降 10-15 fps。我尝试使用工具来跟踪花费了这么长时间的时间,但前两次腰围是 glValidateState,其中包括 ccsprite draw 和 ccnode 访问。第二个乞求时间腰身是 mach_msg_trap。有没有其他方法可以找出子弹代码中降低性能的原因?顺便说一句,你的书对学习 cocos2d 很有帮助:)
【问题讨论】:
-
是的,我已将示例视角切换为运行示例时间
标签: ios optimization cocos2d-iphone box2d