Java profilers have been around for almost as long as Java has. Among other things, profilers allow us to analyze the heap for memory
usage and leaks, CPU utilization, trace objects and methods, determine performance bottlenecks, and much more. A variety of open
source profilers are available out there, as well as commercial ones (for example, YourKit profiler at yourkit.com and Quest JProbe
Suite). Some run as standalone Java programs, others can be deployed to a servlet container, and yet others are available as Eclipse
plug-ins.
The JMX monitoring I discussed previously is robust; however, it requires JSE 5.0 and might not provide the type of application-specific
coverage and profiling you are looking for. So, if you are looking for an open source profiler, the following website lists a dozen or so
open source Java profilers: http://www.manageability.org/blog/stuff/open-source-profilers-for-java/view/.