【问题标题】:Can I generate an HPROF file at will?可以随意生成HPROF文件吗?
【发布时间】:2019-08-29 12:11:04
【问题描述】:

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

如何动态生成一个?

【问题讨论】:

    标签: java hprof


    【解决方案1】:

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

    jmap -dump:file=

    【讨论】:

    • 感谢您的回答。此外,您还可以使用 jps 快速找到您的 Java 进程的 pid。
    【解决方案2】:

    您必须使用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,则会为一个文件生成多个配置文件。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 不回答问题。
      【解决方案4】:

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

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

      Jconsole Screen Shot

      【讨论】:

        猜你喜欢
        • 2019-07-01
        • 1970-01-01
        • 2012-07-05
        • 2017-06-25
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多