2013-02-11 72 views
0

我已经开始使用visualVM调试我的软件。我只是开始用这个软件获得familliar。使用visualvm的java内存泄漏

我有内存泄漏。我发现那是可疑的,但不知道该怎么做。

下一步是什么?

enter image description here

+1

它看起来像你有一个JDBC连接保持包含数据的180MB一个HashMap。点击JDBC连接并试图从持有大地图的字段名称中了解它应该包含的内容。 – Flavio 2013-02-11 12:55:46

+0

无法从中理解。有人对此有过诡计吗? – user502967 2013-02-11 17:39:13

回答

1

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

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

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

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

通过这种方式,您可以快速识别错误引用的位置,并相应地修改程序以避免泄漏。

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