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