最近我遇到了一个非常奇怪的问题:触摸iPhone屏幕并移动手指可以吃掉我FPS的50%。是的,我检查了我的代码是否存在可能的瓶颈 - 而不是问题。在写这篇文章之前我尝试过的最后一招 - 评论出所有的触摸处理代码,然后查看FPS。结果是:没有接触 - 58-60。触摸并移动手指 - 立即35-40 FPS。
渲染是在一个单独的线程中完成的,因此没有主要的runloop事件会与它发生冲突。然而,对我来说(以及我开发的游戏)来解决这个问题非常不妥,因为这样的FPS下降非常明显。
提前感谢您的帮助。
UPDATE :似乎将渲染线程的优先级设置为更高的值会有所帮助......
答案 0 :(得分:2)
iPhone,iPod Touch和iPad都是单处理器,单核设备。简单地将渲染代码放在与触摸事件处理不同的线程上 - 尽管一个好主意 - 不会阻止触摸处理占用CPU周期。使帧率提高的唯一方法是使触摸处理代码更快或使渲染更快。您所追求的取决于您的申请细节。