Opensource profilers
In order to get a reasonable performance we are trying out some profilers to see whether we can increase the performance of our web-services. Escpecially th report methods are very memory and cpu intensive and need some tuning.
For a list of open profilers see
this site. We've tried the following:
JRat
JRat shows a tree view of the methods called and lists their percentage of cpu usage and total time.
Installation
- see the following guide for general instructions and this page for tomcat specific instructions.
- The jrat jar goes into the tomcat/common/lib dir
Usage
jmemprof
Jmemprof shows memory usage information per class/method.
Installation
Usage
Eclipse profiler plugin
This plugin provides a lot of information integrated with our favourite ide.
Installation
- The latest version of the plugin is sadly not usable with eclipse 3.1 but someone was so kind as to patch it. The patched version is available here
- unpack the zip into your eclipse/plugins folder.
- For windows: copy the ProfilerDll.dll file to your jre's bin folder.
- For linux go into the native folder, unpack the profiler_linux.tgz tarball and copy the libProfilerDLL.so to your jre's lib folder.
Usage
also see
their homepage
- To use this plugin with a standalone application select run..., new profiler and add a vm-argument: -noverify
References:
JMP
A memory profiler, not yet tried this one. see
http://www.khelekore.org/jmp/
--
IvoVanDongen - 29 Nov 2005
Extensible Java Profiler
This profiler is pretty easy to use, the result vieweris it's biggest drawback. The project page can be found
here.
Installation
Follow the instructions from the included "instrumenting.txt", they worked for me under win2k.
Usage
Run your application with the added argument to the JVM: "-Xruntracer". Further information can be found in the "instrumenting.txt" file.
After running your application start the viewer and open the logged file, you can select a number of view filters, "Remove non-significant" is pretty usefull, it will hide all items, which didn't take much time.