我可以随意生成HPROF文件吗?

时间:2010-02-26 19:58:22

标签: java hprof

我有一个可疑的java进程。我想看看使用各种HPROF分析工具的原因。

如何动态生成?

4 个答案:

答案 0 :(得分:52)

是。您可以使用Sun的Java VM附带的jmap工具动态生成一个hprof文件(包含堆内存使用情况):

  

jmap -dump:file =< file_name> < PID>

答案 1 :(得分:7)

您必须使用the correct arguments,启动Java进程,这取决于JVM版本。然后,向进程发送QUIT信号以生成新文件。

  

输出通常在VM退出时生成,但可以通过将“dump on exit”选项设置为“n”(doe = n)来禁用。此外,按下Ctrl- \或Ctrl-Break(取决于平台)时会生成配置文件。在Solaris OS和Linux上,当收到QUIT信号时也会生成配置文件(kill -QUIT pid)。如果多次按Ctrl- \或Ctrl-Break,则会为一个文件生成多个配置文件。

答案 2 :(得分:0)

VisualVM可以帮助您深入了解您的流程正在做什么,包括在正在运行的流程上任意强制堆转储的能力。

答案 3 :(得分:0)

jconsole现在能够为应用程序的当前工作目录创建转储。

  1. 连接到启用JMX的实例
  2. 导航至com.sun.management - > HotspotDiagnostic - >操作
  3. 填写p0以命名堆转储
  4. 按heapDump按钮
  5. Jconsole Screen Shot