Discover Java VisualVM 1.3

2 days ago, Java VisualVM 1.3 has been released. We'll see what's new with this release.

At this time, there is no package for Ubuntu, so we'll install it manually :

wget https://visualvm.dev.java.net/files/documents/7163/151728/visualvm_13.zip
unzip visualvm_13.zip

And then we can directly launch it :

cd visualvm_13/bin
sh visualvm

You'll be asked for the license agreement and after that the tool is launched :

VisualVM 1.3 Startup

Here there is nothing new, except for the change of version of course. So let's profile something. In my case, I profile IntelliJ Idea for the test, but this doesn't change anything. We immediately see that there is a new tab (Sampler). If we watch the three first tabs (Overview, Monitor and Threads), we see that there is no changes.

The Sampler tab is simply a plugin (VisualVM Sampler Plugin) that has been integrated by default in VisualVM. Sampling is not like profiling. There is no instrumentation, so no setup time and almost no overhead, the application run at full speed. This is achieved by periodically polling the monitored application for thread dumps or memory histograms. So let's test to the Sampler tab :

VisualVM 1.3 Sampler

Like, int the Profiler tab, we can launch CPU or Memory sampling. So let's try CPU :

VisualVM 1.3 CPU Sampling

You will immediately see the speed of the results, there is no time to wait, but the refreshes are slower of course, because, it's periodic. The results are like in the Profiler tab. If we start Memory Sampling :

VisualVM 1.3 Memory Sampling

Once again, the results are the same as with the Profiler, but we see a new feature, the PermGen histogram :

VisualVM 1.3 PermGen Histogram

That could be really useful to see why your application takes a lot of PermGen space or simply to see that there is not enough PermGen space.

There is another new feature in this version. The Tracer Probes. But by default, there is no installed probes, so you must install plugins to see them :

VisualVM 1.3 Probes Plugins

Then, just click install, accept the license agreement and let the application restart. And then, if you launch the profiling of an application, you'll see the Tracer tab :

VisualVM 1.3 Tracer

You see that there is a lot of probes that we can enable. So let's enable some probes and Start the Tracer :

VisualVM 1.3 Tracer Graphs

Like the profiler, there is a needed time of instrumentation and after that, you will see some graphs. There is a graph for each probe you selected. Each probe display some specific data, by example, the Threads Probe display the number of threads and the number of Deamon threads and the JIT Compiler Probe display the activity of the JIT compiler. Here I've also enabled some Swing probes because IntelliJ Idea use Swing, but you have also Probes for JavaFX by example. If you pass the mouse on the graphs, you will see the exact values at the time where the cursor is :

VisualVM 1.3 Tracer Mouse Details

It's think this new Tracer is just awesome. It's really useful and really good-looking.

So we've now covered the main new features of this new version. I think this version adds some great new features and improvements and that will make of VisualVM an essential profiler.

For the complete information about this new version, read the release notes.

Related articles

  • Profile your applications with Java VisualVM
  • Tip : Profile an OSGi application with VisualVM
  • IntelliJ Idea 9.0.3 is here !
  • How to profile your applications using the Linux perf tools
  • Java Concurrency - Part 1 : Threads
  • JetBrains has released IntelliJ IDEA 9.0.2
  • Comments

    Comments powered by Disqus