【问题标题】:Android : How to test memory leak in an application?Android:如何测试应用程序中的内存泄漏?
【发布时间】:2012-09-13 12:09:30
【问题描述】:

我开发了一个应用程序,我想检查应用程序中发生的内存泄漏。我正在尝试使用 eclipse MAT,但不成功,我正在获取 HROF 文件,但 eclipse MAT 无法读取它。谁能帮帮我。任何其他查找方式。

【问题讨论】:

  • 你已经阅读了这篇文章:android-developers.blogspot.com/2011/03/… 那么有什么令人困惑的地方?
  • 我经历过这个。我也有堆转储文件。当我试图在 Eclipse 内存分析器中打开它时,即 MAT 显示文件无法读取。

标签: android memory-leaks android-emulator


【解决方案1】:

Android 的 dump.hprof 文件需要转换。然后你就可以在MAT中打开converted-dump.hprof了。

hprof-conv dump.hprof converted-dump.hprof

【讨论】:

  • Morrison-- 哦……谢谢。我想我忘记转换它了。我会尝试并让你知道..
【解决方案2】:

我发现this 视频非常有用。这讲了如何从 logcat(垃圾收集器日志)中查找内存泄漏以及如何使用内存分析器(MAT)。

【讨论】:

  • Sujith.. 谢谢.. 我已经浏览了这个视频.. 很棒的视频来了解内存分析器 (MAT)。
【解决方案3】:

@sujith video 非常好。总而言之,1)视频谈到了一个非常难以发现的“非静态内部类”泄漏。 this page对此有详细的解释。 2) 他谈到了使用内存分析工具时的一些重要概念,例如浅堆与保留堆、GC Root 和支配树。 3) 他展示了一个使用 MAT 来识别泄漏的示例。在 MAT 中,他所说的最有用的工具是 Histogram 和 Dominator Tree。在进一步检查对象时,他使用右键菜单“到 GC Root 的路径”,然后使用“排除弱引用”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多