【发布时间】:2013-03-30 00:04:12
【问题描述】:
好的,我有内存泄漏。它最有可能在 GUI 或 ExecutorCompletionService 中。监控程序内存的选项有哪些?
是的,我出现内存不足错误。我在 eclipse 的 vm 参数上设置了 -XX:+HeapDumpOnOutOfMemoryError 以生成转储文件。情况是有一个 ExecutorCompletionService 运行计算密集型任务的线程池。线程用中间结果向 gui 线程发出信号。
我正在审查 ExecutionController 类的单元测试,想知道是否可以将内存监控集成到单元测试中。
关于配置文件选项,我上个月成功完成了这项工作,但我不记得使用的程序或专业填充物。我打开了一个单独的窗口并从外部运行的监视器监视实时快照。我依稀记得在确定发生内存泄漏的确切类成员时有些困难,但提供了足够的信息来解决前面的问题。
我会在不久的将来尝试建议的监控选项。
【问题讨论】:
-
您可以将分析器附加到 java 进程和监视器中
-
请提供更多细节。你收到
OutOfMemory错误吗? -
@PM77-1 - 大概是的。但并不真正相关。他不希望我们真正帮助他解决问题。他希望我们告诉他如何自己解决问题。
-
我最终使用 Jconsole 来监控内存,并在代码中设置了中断来运行部分代码。在视觉上增加记忆时点击暂停也很有帮助。罪魁祸首是导致无限递归循环的一系列 toString 成员。