How do I automatically attach JVisualVM to a short-lived program?
Briefly reading tutorials and playing with JVisualVM, I can manually attach it to a long-running server or Swing application, but I'd also like to use it for short programs that run in under a second.
开发者_StackOverflow中文版I suppose I could have my program block on the console, attach JVisualVM, and then hit a key to have the program do its real work. Is there a less kludgy workaround?
(This is mainly for my own curiosity, and it would be nice to use a polished GUI like JVisualVM instead of -Xprof or HPROF).
If you are using eclipse, you can use the "Stop in main" option in the debug mode and add the following lines as arguments to your process
-Dcom.sun.management.jmxremote.port=<fixed_port_number>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Once it starts in debug mode and blocks then attach the jvisualvm to it connecting to the process using the port number specified.
Add suspend=y to your debug settings. This will cause your program to halt until a debugger/profiler is attached.
精彩评论