Having performance problems with your Java Application? Using too much Java heap space and don't know why? Sometimes simple software tools are all that's needed. This article discusses those tools.
VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform.
JMeasurement is a free and simple java api for monitoring runtime and usage (count, parallel activation, last activation) of user defined points in java production code. It is simple to use and extended. JMX is supported.
Stopwatch was ment to replace System.currentTimeMillis() calls, match like Log4j replaced System.out.println() calls. To see how it does that go to Quick Start page.
Profiler4j is an open-source CPU profiler for Java. To get started, just follow the tutorial or see some screenshots.
Notice that this project is in beta stage and still have some bugs. However, as far as I know, it is fairly stable with typical applications such as Tomcat and JBoss. A final hint: if you develop in JDK1.4 or 1.3, please see this FAQ.
An application seems to run more slowly than it should or more slowly than it did previously, or the application is unresponsive or hangs. You may encounter these situations in production or during development. What is at the root of these problems? Often
T. Mytkowicz, A. Diwan, M. Hauswirth, and P. Sweeney. Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, page 187--197. ACM, (June 2010)