问题
I have a java process which is acting dubiously. I'd like to see what's up using the various HPROF analysis tools.
How do I generate one on the fly?
回答1:
Yes. You can generate an hprof file (containing heap memory usage) on the fly using the jmap tool, which ships with Sun's Java VM:
jmap -dump:file=<file_name> <pid>
回答2:
You have to start the Java process with the correct arguments, which vary a little depending on the JVM version. Then, send a QUIT
signal to the process to generate a new file.
The output is normally generated when the VM exits, although this can be disabled by setting the “dump on exit” option to “n” (doe=n). In addition, a profile is generated when Ctrl-\ or Ctrl-Break (depending on platform) is pressed. On Solaris OS and Linux a profile is also generated when a QUIT signal is received (kill -QUIT pid). If Ctrl-\ or Ctrl-Break is pressed multiple times, multiple profiles are generated to the one file.
回答3:
VisualVM can help you dig into what your process is doing, including the ability to arbitrarily force a heap dump on a running process.
回答4:
jconsole now has the ability to create a dump to the app's current working directory.
- Connect to your JMX enabled instance
- Navigate to com.sun.management-->HotspotDiagnostic-->Operations
- Fill in p0 to name the Heap Dump
- press the heapDump button
Jconsole Screen Shot
来源:https://stackoverflow.com/questions/2344417/can-i-generate-an-hprof-file-at-will