获取有关特定内存泄漏的更多详细信息

时间:2011-08-27 14:01:19

标签: java memory-leaks eclipse-memory-analyzer

我的内存泄漏看起来像这样: leak

Eclipse Memory Analyzer没有那么多经验我想知道它是否可以回答这两个问题:

  • 分配了大部分实例的源代码位置是什么?
  • 他们没有收集垃圾的原因是什么?
    1. 他们停了但仍在某处被引用?
    2. 他们还在执行或睡觉吗?

编辑 sbridges 看起来是正确的,我的线程永远不会死。但是我不确定原因,因为stacktrace似乎不包含我的任何代码。我使用ExecutorService的方式必然是错误的。

threads

1 个答案:

答案 0 :(得分:3)

你的代码正在某处创建线程,而这些线程永远不会消亡。线程不能被垃圾收集,因为线程是gc根。调试此方法的最简单方法是启动应用程序,等到有大量线程,然后使用JConsole连接到应用程序,并查看线程的堆栈跟踪。要查看堆栈跟踪,请单击threads tab,然后单击活动线程下的线程。