如何在eclipse中使用MAT查找内存泄漏

Posted

技术标签:

【中文标题】如何在eclipse中使用MAT查找内存泄漏【英文标题】:How to use MAT in eclipse to find memory leaks 【发布时间】:2014-05-01 21:18:12 【问题描述】:

我是这个主题的新手,所以我在互联网上研究了关于 MAT 的文章,但这些文章已经很老了,并且有一些关于创建堆转储和手动将文件转换为其他格式等的东西......但是只要我点击堆转储,我就会得到这个

所以我猜我不需要再转换它了吗??

我想问一下我的应用程序需要大约 40-120 mb ram。由于内存泄漏,大小不断增加如何找出导致它的变量?我们甚至可以找出单独变量的内存分配吗?

【问题讨论】:

【参考方案1】:

不用再转换了,hprof 发现内存泄漏绰绰有余

在 MAT 中,您单击 Histogram 和 dominator_tree 菜单。两者都会向您显示运行时对象列表和保留堆的相应大小。您可以根据保留的堆大小轻松获得代码分析的起点,并找到内存泄漏的根源。

此外,如果您点击泄漏嫌疑人,您将获得问题嫌疑人列表。

【讨论】:

谢谢,但由于我无法使用 mat 找到它,因此我更改了代码的整个结构,在不需要时将值无效,这很有帮助...:D开始知道如果 Context 没有被取消,活动不会被破坏,这会导致内存泄漏......仍然有一些内存泄漏,但数量已经大大减少:D 我仍然需要知道如何清除布局..取消它们有帮助吗? 当然,在使用后取消对象是一种很好的做法。特别关闭您的 JDBC Conn 对象等。如果您仍然遇到任何问题,始终建议您使用诸如 MAT 之类的收费来找出根本原因。您甚至可以通过 JConsole 查看应用程序在运行时的内存消耗。由于它的运行时间,您可以轻松找到内存需求较高的时间,并且您可以专注于特定功能。 感谢您的帮助***.com/questions/23568216/…

以上是关于如何在eclipse中使用MAT查找内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

Android:使用 MAT 查找内存泄漏

Eclipse MAT 安装及使用

使用MAT分析JVM内存溢出

MAT

Android 中如何分析内存泄漏

android 中如何分析内存泄漏