31

我有一个行为可疑的 java 进程。我想看看使用各种 HPROF 分析工具的情况。

如何即时生成一个?

4

4 回答 4

56

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

jmap -dump:file=<文件名> <pid>

于 2010-03-19T16:35:18.287 回答
7

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

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

于 2010-02-26T20:00:42.740 回答
0

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

于 2010-02-26T20:04:22.107 回答
0

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

  1. 连接到启用 JMX 的实例
  2. 导航到 com.sun.management-->HotspotDiagnostic-->Operations
  3. 填写 p0 为 Heap Dump 命名
  4. 按下 heapDump 按钮

Jconsole 屏幕截图

于 2016-07-13T15:23:31.830 回答