我剛剛在PSP上進行性能測試非常簡單。你剛剛關閉'vsync'並打印出框架,然後改變一些內容並查看幀速率是上升還是下降...在iPhone上獲得幀率性能
有什麼辦法可以在iPhone上做同樣的事情嗎?你如何關閉vsync?儀器工具旁邊沒用。它的主要問題是運行它會對應用程序的性能產生不利影響!此外,它報告的幀率非常零星。
我不希望任何花哨的工具報告調用樹和每個函數花費的時間。我只是想要一個無限制的幀速率和一些方法來看看它是什麼。您可以在iPhone上使用高精度計數器嗎?在Windows中像QueryPerformanceCounter?
另外,無論如何你有某種程度上KILL後臺進程,所以你知道他們不能影響性能,也許解決虛擬幀率問題?
所以的想法是。只是保持暫停和恢復調試器,它最多暫停的功能是你應該首先優化的那個,不是因爲它調用了很多,還是因爲它需要時間?理論上聽起來不錯。但問題是,線程和東西等。例如,當你暫停時,調試器可能不得不等待,直到代碼等待。比如我在iPhone上的應用程序嘗試了這個功能,並且每次都在同一時間點打破。完全在系統代碼中(沒有我的功能)。你有沒有在iphone上試過這個?你能列出一些平臺/調試器在哪裏工作? – matt 2010-03-31 02:05:53
@matt:兩件事。 1)查看調用堆棧,因爲堆棧中的所有代碼行都共同負責它處於它所處的狀態。如果它們中的任何一個可以更少或根本不做,則會節省時間。 2)線程A可能正在等待線程B,所以最好能夠對進程中的所有線程進行快照。這應該照亮你的問題,除非真的沒有什麼可以優化的。試一試,祝你好運。 – 2010-03-31 11:18:47