使用VisualVM的java内存泄漏

标签 java memory-leaks visualvm

我已经开始使用 VisualVM 调试我的软件。我才刚刚开始熟悉这个软件。

我有内存泄漏。我发现了一些可疑的东西,但不知道该怎么解释。

下一步是什么?

enter image description here

最佳答案

这就是我使用Java VisualVM快速跟踪内存泄漏的方法。

首先在代码中要检查的位置设置断点或暂停。

执行程序的堆转储,使用“在实例 View 中显示”来详细查看您怀疑泄漏的类的实例(即内存中明显有太多实例)。

然后确定应该收集的该类的一个实例。在“引用”面板中,您可以看到引用您的类的所有对象,右键单击“this”并选择“最近的GC根”,这将显示哪些引用阻止该类被GC收集。

这样您就可以快速识别哪里是错误的引用,并相应地修改您的程序以避免泄漏。

祝你好运,这实际上是一个非常有趣的任务,如果你是初学者,你会学到很多关于 JVM 如何工作的知识

关于使用VisualVM的java内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812349/

相关文章:

java - 从 MDB 挂起队列

java - 用户已经创建了 Heap 后,如何使用 HeapSort 方法?

java - 使用 java 的 HTTP 补丁请求

c - 为什么我的动态字符串数组会泄漏?

Java 8 Optionals,组合语句

c++ - 在 C++ 中清除哈希表

c - valgrind 报告 mkl 的 dsyev 内存泄漏

IBM Websphere 中的 Java VisualVM JMX 连接

java - maven/visualvm : how can i use visualvm to profile a running surefire process?

java - VisualVM - 无法进行堆转储