我有一個動畫遊戲,一般每秒鐘可以達到25-30幀,但偶爾會在這裏和那裏凍結四分之一秒。從看各種職位,我想它可能是做一些垃圾收集。診斷垃圾收集(或其他類型的中斷)
我使用的是日食,並配備了DDMS和內部分析器 - 但我還沒有完全掌握。但據我所知,似乎很少且很少發生內存分配,而那些內存似乎很小。同樣,當查看功能列表和他們正在使用的時間百分比時,我看不出什麼奇怪的東西。請注意,我不太清楚要查找什麼 - 是否有一個名爲DoingGarbageCollectionNow()或類似的函數?我找不到像這樣的東西。
編輯:在我的三星Galaxy Y(Android 2.3.5)上,這個小小的死機顯然很明顯。在我的谷歌Nexus S(Android 2.3.3)上,幀速率始終在25以上。
編輯:延遲可能是由另一個應用程序(或操作系統程序)在後臺運行引起的 - 如果是這樣,我怎麼能告訴?
不幸的是,在java世界中,你現在無法真正強制進行垃圾回收。它是運行時(JVM)的責任。 – kosa 2012-03-23 15:20:09
我並不是說有一個函數可以調用 - 我的意思是有一個函數,我可以在分析器報告中看到。 – Mick 2012-03-23 15:22:51