【问题标题】:How can I use Eclipse Memory Analyzer Tool to dump the heap from a running process?如何使用 Eclipse 内存分析器工具从正在运行的进程中转储堆?
【发布时间】:2012-07-24 21:11:00
【问题描述】:

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

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

我做错了什么?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      在“Acquire Head Dump”中指定jdk路径->“Configure...”->选择“HPROF jmap dump provider”->“-jdkhome”->指定jdk路径默认应该是 "C:\Program Files\Java\jdk1.8.0_102" 或你的 jdk 位置。

      我希望它对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-18
        • 2011-08-28
        • 2013-01-21
        • 2019-03-24
        • 1970-01-01
        • 2022-01-16
        • 2012-10-07
        相关资源
        最近更新 更多