What is Visual VM?

Guest Author

Visual VM is a new project whose goal is to provide monitoring and profiling tools for the JVM with a GUI. You may ask - why do we need visual VM when we have NetBeans profiler? Well, in order to use NetBeans profiler you need to use NetBeans - on the contrary Visual VM is a standalone application (based on NetBeans platform :).

So what is the difference between NetBeans profiler and Visual VM? Some parts are very similar - especially the thread, CPU and memory profiling. Visual VM doesn't have some of the advanced features of NetBeans profiler, such as load generation with jMeter and source code related features including profiling points. On the other hand it is a "all-in-one" tool for monitoring and profiling tasks. So it integrates functionality from various command line tools such as jps, jstack, jstat, jmap and jinfo.

When you run Visual VM you can see all running java processes and you can connect to them, take thread dumps, heap dumps, analyze CPU and memory performance. Although Visual VM requires JDK 6 to start you can connect to applications running on 1.4.2 or higher. And you can also connect to remote hosts and perform remote profiling.

Visual VM also shares the NetBeans plug-in architecture, so you can create plug-ins for Visual VM like if they were NetBeans plug-ins. Right now you can install an MBeans browser plug-in and a visual GC plug-in.

You can download Milestone 1 of Visual VM and give it a spin yourself. For more information look at the PDF presentation from last Java One BoF about Visual VM.

Join the discussion

Comments ( 10 )
  • Michael Bien Friday, January 25, 2008

    has Visual VM any advantages over JConsole? Or is it some kind of modular replacement for JConsole? ;)

    nonetheless works great!

  • Roman Strobl Friday, January 25, 2008

    JConsole can't do profiling, so that's one advantage. Also all the tools are integrated in one package (if anything's missing it may be added - we have M1 now, it's the first preview). I think Visual VM and JConsole will co-exist, at least for some time, however Visual VM has a lot of potential because it's easily extensible thanks to modular architecture which is the same as of NetBeans.

  • Hayden Jones Friday, January 25, 2008

    Just a note that in your banner at the top of your page you have a logo encouraging people to "Get the new Netbeans 5.5"

  • Roman Strobl Friday, January 25, 2008

    Fixed, thanks.

  • Gregg Sporar Friday, January 25, 2008

    There is an introductory document available on the project web site at: https://visualvm.dev.java.net/description.html

  • huntch Saturday, January 26, 2008

    One of my favorites that's in VisualVM is the VisualGC plugin is already available as optional plug-in in the update center. I really like the "undock" / "dock" capability when using VisualGC in VisualVM. If I could just have multiple VisualGC windows monitoring different JVMs at the same time within VisualVM I'd be an incredibly happy VisualVM user :-)

  • Reza Azizi Monday, January 28, 2008

    Very Interesting. I'm sure it can be very helpful for debugging and performance issue tracking.

    I'm going to try it.

  • AlexC Tuesday, January 29, 2008

    This does indeed sound interesting and a welcome 'companion' to jConsole; although the requirement that it must use JDK 6 could be a slight issue. I fear that a lot of large firms haven't made the jump to 6 yet. However I will certainly have a play with this at home. Will it also work on apps running in Glassfish ?

  • Arseniy Kuznetsov Wednesday, January 30, 2008

    Hi AlexC,

    VisualVM itself runs on JDK6, however the monitored / profiled application can run on anything from JDK 1.4.2 up. There are couple of limitations based on specific JDK version as listed on https://visualvm.dev.java.net/

    VisualVM by default treats GlassFish as a generic Java app. VisualVM is fully extensible though, so it is easy to make a GlassFish plugin that would provide some more specific info / control over the server as well as its running apps. The good news is the work on this plugin is already in progress :)



  • Veera Sunday, April 26, 2009


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.