2012-09-21 58 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根路径”,然后“排除弱引用”。