我編寫一個60 FPS遊戲,需要找到那些嚴重影響遊戲循環性能的代碼段。我現在在幀的開始存儲一個納秒時間戳,並將我的代碼分成邏輯部分,例如「渲染粒子」或「遍歷敵方AI」。完成每個部分的執行後,我將存儲自上一部分完成後執行代碼所需的執行時間。最後,我檢索總執行時間([納秒現在]減去[第一納秒時間戳])並計算每個代碼段執行時間的百分比。這使我可以顯示每個部分所佔的百分比,但似乎並不是完美的解決方案。我猜GC隨機影響代碼段執行。Java/Dalvik - 比較代碼段執行時間
有沒有更好的方法可以實現,甚至是一個API /分析工具來做到這一點?
http://developer.android.com/tools/debugging/debugging-tracing.html – GriffeyDog
謝謝。收藏成功!我使用的LibGDX允許編寫遊戲邏輯一次,並且在部署桌面或Android(LWJGL/OpenGL ES)時擴展特定於平臺的代碼。我想先優化桌面版本,那麼有沒有好的Windows分析器? – Aich
[Visual VM](http://docs.oracle.com/javase/7/docs/technotes/guides/visualvm/)可能是最常見的。 – GriffeyDog