2012-09-21 55 views
6

我開發了一個應用程序,我想檢查應用程序中發生的內存泄漏。我正在嘗試使用eclipse MAT,但不成功,我正在獲取HROF文件,但eclipse MAT無法讀取它。有人能幫助我嗎?任何其他方式查找。Android:如何測試應用程序中的內存泄漏?

+0

你已經閱讀這篇文章:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html所以什麼是混淆? –

+0

我已經經歷過這個。我也有堆轉儲文件。當我試圖在eclipse內存分析器中打開它時,即MAT顯示文件無法讀取。 –

回答

4

Android中的dump.hprof文件需要轉換。然後你可以打開MAT中的converted-dump.hprof。

hprof-conv dump.hprof converted-dump.hprof 
+0

Morrison - oohk ..謝謝。我想我忘了將它轉換..我會嘗試它,讓你知道.. –

+0

謝謝@morrison ..轉換工作正常&得到了內存泄漏比率.. –

3

我發現this視頻非常有用。這裏討論瞭如何從logcat(垃圾收集器日誌)找到內存泄漏以及如何使用內存分析器(MAT)。

+0

Sujith ..謝謝..我已經通過這個視頻。 。真棒視頻獲取內存分析器(MAT)的知識。 –

1

@sujith video非常好。總而言之,該視頻談到了一個非常難以發現的「非靜態內部類」泄漏問題。在this page有關於此的詳細說明。 2)他談到了使用內存分析工具時的一些重要概念,如淺堆與保留堆,GC根和支配樹。 3)他展示了一個使用MAT來識別泄漏的例子。在MAT中,他所說的最有用的工具是直方圖和支配樹。進一步檢查對象時,他使用右鍵單擊菜單「GC根路徑」,然後「排除弱引用」。