如何使用Eclipse Memory Analyzer Tool从正在运行的进程中转储堆?

时间:2012-07-24 21:11:00

标签: eclipse console-application eclipse-memory-analyzer

我创建了一个从Eclipse运行的简单控制台应用程序(右键单击该文件并选择以Java应用程序运行。)我在那里睡了一觉,所以当我启动Aquire堆时我可以确保进程仍在运行转储对话框。我启动对话框,点击刷新,并且没有列出本地进程。

我检查了Eclipse的错误日志,它只报告列出IBM VM进程时出现问题(HPROF配置正常并正常工作。)

我做错了什么?

2 个答案:

答案 0 :(得分:3)

为什么不从程序代码创建堆转储?

https://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java

或者当从这里遇到安全问题时: create heap dump from within application, without HotSpotDiagnosticMXBean

我在JUnit测试中经过一定数量的迭代后使用它来进行堆转储,剩下要做的就是打开Eclipse MAT中的转储并查找内存泄漏的原因: - (

答案 1 :(得分:0)

我遇到同样的问题,谷歌搜索后发现了这个解决方案。

在"获取头转储中指定jdk路径" - > "配置..." - >选择" HPROF jmap dump provider" - > " -jdkhome" - > speficy jdk路径默认情况下应该是 " C:\ Program Files \ Java \ jdk1.8.0_102"或者你的jdk位置。

我希望它适合你。