2012-04-08 50 views
2

我的android遊戲中存在內存泄漏 - 我設法將其縮小到某個對象,該對象具有要在紋理上呈現的對象列表。這個對象在每次繪製的時候都會清除列表 - 所以我無法弄清楚它是如何獲得列表中的數千個元素的。內存泄漏 - 調試器和內存分析器不同意

我在調試器中檢查過,它沒有所有這些成千上萬的元素 - 通常約爲2-20,這正是我所期望的......只有在渲染到紋理時,遊戲纔會逐漸減慢。

這裏是內存分析器的顯示6,111項的畫面:

Memory Analyzer

下面是該調試器的圖片2:

Debugger

誰能幫我找到了什麼錯誤?

+0

你確定GC不只是堅持一段時間? – teh1 2012-04-08 20:40:18

+0

它可能是...我會嘗試查看它是否在任何時候被清除 – Joe 2012-04-09 18:09:32

+0

@Joe,因爲我對teh1的評論被說了,如果那些引用準備好被清除,他們將不會在默認的Eclipse MAT解析中顯示。如果您遵循解析日誌,您將在某個時候看到它將刪除無法訪問的對象。 – 2012-04-09 19:09:07

回答

1

它看起來像你可以調用System.gc();試圖讓垃圾收集器發揮其魔力。搏一搏。

+1

這不是假設OP在沒有-keep_unreachable_objects的情況下運行解析。如果他沒有那些引用不會出現。 System.gc()只會將標記的數據清理爲GC – 2012-04-09 19:08:20

+0

那麼你有它。 – teh1 2012-04-09 20:25:40