使用visualvm进行java内存泄漏

时间:2013-02-11 12:52:36

标签: java memory-leaks visualvm

我已经开始使用visualVM调试我的软件了。我开始熟悉这个软件。

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

下一步是什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

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

首先在您要检查的地方设置断点或暂停代码。

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

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

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

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

答案 1 :(得分:0)

我对你的应用程序一无所知,但我怀疑内存泄漏可以追溯到HashMap。值通常在地图中累积(用于缓存......)。 另外看看这些类似的帖子: