0

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

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

你下一步怎么做?

在此处输入图像描述

4

2 回答 2

1

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

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

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

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

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

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

于 2013-02-17T18:56:28.453 回答
0

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

于 2013-02-11T13:00:28.903 回答