Sun has shipped a number of performance monitoring and profiling tools with the JDK for some time now. Recently, several of these efforts have led to a more complete and more capable monitoring and execution visualization tool, VisualVM.
VisualVM relies on tools such as jstat, jinfo, jstack, and jmap to obtain very detailed information about applications running inside a JVM, and presents that data in a unified, graphically rich manner. Sun announced this week that is bundling VisualVM with Update 7 to JDK6, released also this week. In JDK 6 Update 7, VisualVM can be executed by invoking the jvisualvm command under the JDK's main executable directory.
While VisualVM comes with a wealth of monitoring utilities, VisualVM also has a plug-in architecture that allows for third-party extensions. Several such extensions are already available for download from within the VisualVM user interface. As well, VisualVM defines several JMX extension points for integration with other monitoring and profiling tools:
Java VisualVM can be used by Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, browse the platform's MBeans and perform operations on those MBeans, perform and monitor garbage collection, and perform lightweight memory and CPU profiling.