我已经开始使用 visualVM 调试我的软件。我才开始熟悉这个软件。
我有内存泄漏。我发现了可疑的东西,但不知道该怎么做。
你下一步怎么做?
我已经开始使用 visualVM 调试我的软件。我才开始熟悉这个软件。
我有内存泄漏。我发现了可疑的东西,但不知道该怎么做。
你下一步怎么做?
这就是我使用 Java visualVM 快速跟踪内存泄漏的方式。
首先在您要检查的地方设置断点或暂停代码。
执行程序的堆转储,使用“在实例视图中显示”来详细查看您怀疑泄漏的类的实例(即内存中的实例显然太多)。
然后确定应该收集的该类的一个实例。在“引用”面板中,您可以看到所有引用您的类的对象,右键单击“this”并选择“最近的 GC 根”,这将显示哪些引用阻止了该类被 GC 收集。
通过这种方式,您可以快速识别错误引用的位置并相应地修改您的程序以避免泄漏。
祝你好运,这实际上是一项非常有趣的任务,如果你是初学者,你会学到很多关于 JVM 工作原理的知识
我对您的应用程序一无所知,但我怀疑内存泄漏可以追溯到 HashMap。值通常在地图中累积(用于缓存......)。也看看这些类似的帖子: