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

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

如何动态生成一个?

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

jmap -dump:file =

您必须使用正确的参数启动Java进程, 这些参数根据JVM版本的不同而有所不同。 然后,向进程发送QUIT信号以生成新文件。

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

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

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

  1. 连接到启用JMX的实例
  2. 导航到com.sun.management – > HotspotDiagnostic – > Operations
  3. 填写p0命名堆转储
  4. 按下heapDump按钮

Jconsole屏幕截图