我正在使用opengl es iphone應用程序。計算我的應用程序性能調整每秒幀數的最準確方法是什麼?爲iPhone應用程序計算fps(幀/秒)
1
A
回答
4
嘗試運行:
Run -> Run With Performance Tool -> OpenGL ES
。
你必須在連接到設備運行工具(你明明想反正性能調優...)
它給你的Core Animation FPS可能(可能)不會是你正在尋找,但它可以爲您繪製許多其他有用的統計數據,這些數據也可以幫助您優化。
1
找到像高分辨率定時器(超過1000個滴答/秒), 的東西,並測量從開始渲染到屏幕之間的時間。
除以時間每秒滴答你只是測量,你有FPS。
0
檢查this線程。有一些非常有用的鏈接。祝你好運!
1
當您到達繪圖代碼的末尾時,增加一個計數器。
設置一個NSTimer火災每一秒,顯示該計數器,並且它重置爲零。
0
在開發過程中測量FPS幾乎沒有意義。 測量你需要的渲染時間!
這樣你將有你的變化是如何影響性能更加清醒地認識。 通常,將渲染時間分割爲有意義的切片是一個非常好的主意,例如, 「渲染背景」,「渲染級別」,「渲染小怪」等。
如果你仍然想做FPS,我個人最喜歡的是Johns NSTimer版本,即使它不顯示尖峯。
4
我猜你想要的東西是這樣的:
// fps calculation
static int m_nFps; // current FPS
static CFTimeInterval lastFrameStartTime;
static int m_nAverageFps; // the average FPS over 15 frames
static int m_nAverageFpsCounter;
static int m_nAverageFpsSum;
static UInt8* m_pRGBimage;
static void calcFps()
{
CFTimeInterval thisFrameStartTime = CFAbsoluteTimeGetCurrent();
float deltaTimeInSeconds = thisFrameStartTime - lastFrameStartTime;
m_nFps = (deltaTimeInSeconds == 0) ? 0: 1/(deltaTimeInSeconds);
m_nAverageFpsCounter++;
m_nAverageFpsSum+=m_nFps;
if (m_nAverageFpsCounter >= 15) // calculate average FPS over 15 frames
{
m_nAverageFps = m_nAverageFpsSum/m_nAverageFpsCounter;
m_nAverageFpsCounter = 0;
m_nAverageFpsSum = 0;
}
lastFrameStartTime = thisFrameStartTime;
}
問候, 阿薩夫Pinhassi。
+0
。使用NSTimer我發現它看起來像運行循環一樣快,所以使用絕對時間意味着我知道每秒鐘我有多少幀。 – jowie 2013-06-12 10:04:51
相關問題
- 1. 如何在簡單的Direct2D應用程序中計算fps?
- 2. 每秒幀速率(FPS)在Coco2d遊戲iPhone中開始下降?
- 3. MediaElement - 如何獲得FPS(每秒幀數)?
- 4. android apk:在20至60 FPS之間更改每秒幀數(FPS)
- 5. 計算FPS的Javascript
- 6. 在遊戲中計算每秒幀數
- 7. 在opengl遊戲中爲iPhone計算FPS(EAGLView)
- 8. iphone應用程序設計
- 9. 計算應用程序在後臺的秒數
- 10. 移植iPhone簡單的計算應用程序到Mac OS X應用程序
- 11. 可以製作一個在Python中顯示FPS(每秒幀數)的程序嗎?
- 12. FPS如何計算這個?
- 13. 計算數據使用,在iPhone應用程序
- 14. 以毫秒爲單位計算MP3幀的長度
- 15. C++通過掛鉤被稱爲每幀的函數來計算FPS
- 16. 爲iPhone應用程序
- 17. 爲iPhone應用程序
- 18. 盒爲iPhone應用程序
- 19. 計算iPhone應用程序KML多邊形的最近點
- 20. 如何更改像iPhone計算器應用程序UIViewControllers?
- 21. 如何製作計算電池狀態的iphone應用程序?
- 22. iPhone應用程序設計決策?
- 23. iphone中的計步器應用程序
- 24. iPhone應用程序設計問題
- 25. 設計一個iPhone應用程序
- 26. iPhone UINavigationController應用程序設計
- 27. 設計Omniauth和Iphone/Android應用程序
- 28. Iphone URL計劃:回到應用程序
- 29. 計算G - iOS中的應用程序
- 30. 矩形計算器應用程序
我可以在運行2.2.1的舊式iPod touch上看到FPS,但運行3.1的新款iphone 3gs卻沒有。它只提供了一個選項... – Mel 2009-11-15 19:36:52
嘗試運行獨立的Instruments,並附加到正在運行的進程 - 這可以讓您添加任何您喜歡的工具,其中XCode有時會對您「允許」運行的工具感到困惑。用於'CFAbsoluteTimeGetCurrent()'的+1 – 2009-11-15 20:47:51