Search This Blog

Saturday, May 12, 2018

Visual VM

Recently I got a task to measure the performance of a Java Application and then started looking out lot more tools available on internet for free . There are few performance measurement tool like VisualVm, JConsole(taking heap dump and then analyzing dump using MAT) , jstat, jhat etc. So considering the above all I thought to share visual VM uses and getting handy with it.

What is VisualVM

It is a tool automatically available after JDK is installed. The executable file could be found on your <JDK installation folder>/bin as displayed below.
/wp-content/uploads/2015/09/clipboard1_792507.png
In order to measure the performance of your application, it is necessary for the application to be recognized by VisualVM first.
There is a plugin named “VisualVM launcher for Eclipse” which can help us about it.

Install and configure VisualVM launcher

1. download the zip from http://visualvm.java.net/eclipse-launcher.html. Unzip the file and put it to the plugin folder of your Eclipse installation folder. In my laptop it looks like below. There should be a site.xml inside the unzipped folder.
/wp-content/uploads/2015/09/clipboard2_792508.png
2. In Eclipse, choose menu “Help->Install New Software”, click “Local”, add locate the folder to the one you finish in step1.
/wp-content/uploads/2015/09/clipboard3_792509.png
Then the local downloaded plugin is successfully parsed and ready for install.
/wp-content/uploads/2015/09/clipboard4_792510.png
finish the installation.
/wp-content/uploads/2015/09/clipboard5_792511.png
3. Restart Eclipse, then you can find a new option via the path below. Configure two paths accordingly.
/wp-content/uploads/2015/09/clipboard6_792512.png
For “JDK Home”, if you configure the JRE path by mistake, later when you try to measure your application, the VisualVM will fail to load with the following error message:
/wp-content/uploads/2015/09/clipboard7_792513.png
Now the plugin is ready to use.

Do performance measurement

1. Select your Java project, choose context menu “Run as”->”Run configuration”, create a new Application configuration by specifying VisualVM launcher as its launcher, instead of the default Eclipse JDT launcher.
/wp-content/uploads/2015/09/clipboard8_792514.png
2. For example I have a Java application which sorts an array by QuickSort algorithm written by myself and I would like to get its performance data, then I set a breakpoint on line 57, before my main logic is executed.
Then launch the application in debugging mode with the application configuration created in previous step.
Afterwards VisualVM will automatically be launched and successfully recognize the execution of my application.
Click Profiler tab:
/wp-content/uploads/2015/09/clipboard9_792515.png
Current status: profiling inactive. Click CPU button:
/wp-content/uploads/2015/09/clipboard10_792516.png
Now profiling is activated:
/wp-content/uploads/2015/09/clipboard11_792517.png
3. Go back to Eclipse and click F8 to finish execution. Once finished, VisualVM will immediately capture this event and notify you. Just click Yes to get performance result.
/wp-content/uploads/2015/09/clipboard12_792518.png
The result is displayed as below:
/wp-content/uploads/2015/09/clipboard13_792519.png

No comments :

Post a Comment