生成Java JRE7堆转储文件

6
我正在尝试从我的Java程序生成堆转储,但无论我尝试什么,似乎都无法弄清楚如何做到这一点。我下载了 Eclipse Memory Analyzer(插件和独立版),它应该能够从活动的JRE进程中获取堆转储...但它没有列出任何内容。文档列出了几种其他生成方法,但我似乎无法使它们中的任何一个起作用,或者它们提到的是我系统上根本不存在的某些内容。同样适用于我在网络上发现的所有内容...程序没有引发内存不足异常,只是使用的资源比我预期的要多得多。我完全不知道应该如何做:/ 感谢任何帮助。

你尝试过使用jmap在运行中的JVM上手动生成堆转储文件吗? - fge
1个回答

8
您可以使用Java JDK的jmap.exe手动执行此操作。
  • 获取您进程的PID
  • 导航到%JAVA_HOME%/bin/ (JDK)
  • 在控制台(命令提示符)中键入jmap.exe -dump:format=b,file=C:\dump\dump.bin PID
    • 转储文件将保存在您提供的路径中(例如我的示例是C:\dump\dump.bin
然后您可以使用NetBeans IDE分析此转储。它有内置工具,只需导入dump.bin即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接