While developing Java and tunning your application is quite interesting to see the features of the JVisualVM tool. This post is probably just the first about this topic.
> Yes, PermGen not MetaSpace hehe!
It’s a visualization tool which is already in the JDK toolkit, and jdk/bin/jvisualvm. I myself created an alias on bashrc so I can use it straight away. This tool will provide you with info about the execution of Java stuff. VisualVM will detect the execution of java applications as JBoss and the java application you execute with java <option>
I think the first feature of this tool I already described, which is to detect the java application execution right away and therefore
The thread counting is on the right down corner. It’s also possible to do thread dumps on this tool by using the
We can see the heap/PermGen size on the right corner as well. On the monitor tab we can do the heap dump and the GC.
The number of classes is on the left down corner.
We can see the evolution of the applications we study by watching how it evolves through time. The monitor is live so we can even set up a small experiment to measure the Heap Size using -Xmx option on JVM. If we put -Xmax too small, we will get straight away a java.lang.OutOfMemoryError: Direct buffer memory error, which is pretty much expected.
 Tutorial for JVM
Any reference of Pierre-Hugues Charbonneau is good, although the last one he did was in 2016.