As far as i can tell, you can only profile a running application using VisualVM.
Does anyone know of a way to profile the launch and startup of a java application using VisualVM?
I'm convinced there must be a way, otherwise it would be a major oversight.
Hoping I've just misread the documentation.
Thanks, p.
Java VisualVM enables you to take profiler snapshots to capture the results of a profiling session. A profiler snapshot captures the results at the moment the snapshot is taken. To take a snapshot, click the Take Snapshot of Collected Results button in the toolbar while a profiling session is in progress.
You can access VisualVM from the bin directory of the JDK: On a Windows system, start VisualVM by double-clicking jvisualvm.exe. You can also select VisualVM from the Start menu (if Windchill shortcuts are installed). On other systems, start VisualVM by invoking the jvisualvm script.
To install a VisualVM plugin:Choose Tools > Plugins from the main menu. In the Available Plugins tab, select the Install checkbox for the plugin. Click Install. Step through and complete the plugin installer.
Use the eclipse launcher, and set a breakpoint at an appropriate place in the main method.
Then, start in debug mode, enable profiling in visualVM, and then resume using eclipse.
That won't profile class loading and stuff, but it's good enough for me.
Are you setting up the profiling using the `-Xrunjdwp" command-line option? If so, that option has a "suspend" parameter for just this purpose:
True if the target VM is to be suspended immediately before the main class is loaded; false otherwise.
Example from my own config:
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
I use this with the YourKit profiler, but I think the principle is the same.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With