An Oracle blog about NetBeans Profiler

Visual GC Plugin 2.0 for VisualVM

The recently released VisualVM 1.1.1 introduced an updated Visual GC tool integration into VisualVM. From today the Visual GC Plugin 2.0 is also available for all other VisualVM and Java VisualVM releases via the Plugin Center.

Visual GC is an experimental Visual Garbage Collection Monitoring Tool - a graphical tool for monitoring the HotSpot Garbage Collector, Compiler, and class loader. The tool was originally developed as demonstration software for JavaOne 2001 where it was used in a presentation to help describe how various tunable parameters affect the operations of the HotSpot generational garbage collector. In 2004 it was presented in technical session Using jvmstat and visualgc to Solve Memory Management Problems.

Detailed information on using the Visual GC tool can be found on the Visual GC page. The latest standalone Visual GC tool can be downloaded here.

Using the Visual GC plugin for VisualVM has several advantages over the standalone tool:

  • No command-line launcher. The standalone tool has to be launched from a command-line with at least one argument specifying the PID of the Java process to be monitored. When using the VisualVM plugin, the Visual GC GUI is displayed in a separate subtab for each application.
  • Remote monitoring without any special setup. When the jstatd daemon is already running on a remote server to enable the VisualVM to discover running remote Java applications, no special setup is required for Visual GC to monitor these applications.
  • More user-friendly UI. The plugin changes the default Visual GC appearance to fit into VisualVM UI and provide better user experience. The most significant change is using white background instead of the default black. Changing the background color also required to change the graphs colors. The Application Information section has been removed - the information is already available in Overview subtab of each application. The plugin also sets default font for the labels, fixes several layout problems and allows to configure the refresh rate during runtime. Note that all these customizations can be switched off by starting VisualVM with a special argument -J-Dcom.sun.tools.visualvm.modules.visualgc.originalUI=true.


To install the Visual GC plugin for VisualVM, use Tools | Plugins in VisualVM menu bar and select the 'Available Plugins' tab. Alternatively, if previous version of the plugin is already installed, the updated plugin will be displayed in the Updates tab. You may need to click the 'Reload Catalog' button to refresh the available plugins if the older plugin version (1.1.1) is cached.

When installed, the Visual GC subtab is added for each Java application. The graphs are available for all applications running Sun JDK 1.4.2+ with jvmstat available - this means that both local and remote applications can be monitored without any limitations (jstatd daemon must be running on remote hosts). The Histogram view may or may not be displayed by default depending on the application configuration - when the monitored VM uses Parallel Scavenge collection (using Server VM or setting -XX:+UseParallelGC or -XX:+AggressiveHeap), Histogram view is hidden by default.

The refresh rate of Visual GC graphs is customizable during runtime, it can be changed using the Refresh Rate dropdown. The value is specified in milliseconds and the default value is Auto which means using the global refresh rate defined in Tools | Options | Polling - Monitored Data.

Join the discussion

Comments ( 6 )
  • huntch Monday, February 23, 2009

    Very nice to see the adaptation of VisulGC to the VisualVM model of multiple tabs per JVM modeled. This provide the ability for folks to detach a given monitored JVM (VisualGC) tab so that multiple JVMs can be monitored at the same time. Very good enhancement!

  • deepak Monday, February 23, 2009

    very good tool.

  • DK Wednesday, February 25, 2009

    It there support for Visual GC in NetBeans. I know VisualVM is the NetBeans Profiler but is VisualGC integrated with NetBeans yet?

  • Jiri Sedlacek Wednesday, February 25, 2009

    Yes, the Visual GC integration into NetBeans IDE is available for a long long time. See http://management.netbeans.org/visualgc/index.html.

  • Gerald Monday, September 13, 2010

    Hi Jiri. We have VisualVM running fine, except that the VisualGC plugin doesnt work. We are seeing "Not supported for this JVM" in the page.

    Here is some info about the redhat server:

    JVM: Java HotSpot(TM) 64-Bit Server VM (11.3-b02, mixed mode)

    Java Home: /var/apache/solr-property-partition1-slave/Java/jre1.6.0_13

    Does VisualGC not work with 64-bit hotspot?

  • Jiri Sedlacek Tuesday, September 14, 2010

    Visual GC uses the jvmstat technology to gather data from the monitored application. This means that the monitored application must either run locally or there must be a jstatd agent up and running on the remote system. For remote applications added using the JMX connection you will only see the "Not supported for this JVM" message - there's no jvmstat available.

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