2010-06-06 47 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