2010-06-06 23 views
0

最近我遇到了一个非常奇怪的问题:触摸iPhone的屏幕并移动手指可能会吃掉高达50%的FPS。是的,我检查了我的代码可能的瓶颈 - 而不是问题。在写这篇文章之前,我尝试了最后的手段 - 评论所有的触摸处理代码,然后看看FPS。结果是:没有触及 - 58-60。立即触摸并移动手指 - 35-40 FPS。iPhone + OpenGL + Touches:FPS drop

渲染是在一个单独的线程中完成的,因此没有主要的runloop事件会与它碰撞。然而,对于我来说(这是我开发的游戏)解决这个问题非常困难,因为这样的FPS下降非常明显。

非常感谢您的帮助。

UPDATE:似乎再现线程的优先级设置为高值有助于有点...

回答

2

的iPhone,iPod Touch和iPad的都是单处理器,单核器件。简单地将渲染代码放在与触摸事件处理不同的线程上 - 尽管这是个好主意 - 不会妨碍触摸处理消耗CPU周期。使帧速率上升的唯一方法是使触控处理代码更快或使渲染速度更快。你所追求的取决于你的应用程序的细节。

+0

好点。这也解释了为什么将线程优先级设置为较高值掩码效果的原因。 – Anton 2010-06-06 19:46:44