Visual VM is one of the best profiles and is open source. I used it to profile the JVM, and it comes with various plugins / extensions to view different reports.
I also tried integrating with the WebSphere / Tomcat / Liferay and Glassfish servers. In fact, any JVM with JMX remote management enabled will be identified by the visual VM.
By default, the Visual VM identifies the Sun JVM, but, for example, it could not recognize the IBM JVM. For any other JVMs other than Sun, you need to enable the JMX remote control feature to connect to the JVM using the Visual VM.
Uresh Kuruhuri
source share