JProfiler is a fully featured Java profiler targeted at profiling J2SE and J2EE applications. It combines CPU profiling, thread profiling, and memory profiling in one powerful application.
JProfiler features a large number of IDE integrations and application server integrations. JProfiler's intuitive GUI helps you find performance bottlenecks, pin down memory leaks, and resolve threading issues.
It also offers a path to garbage collector root analysis in the heap walker to fix memory leaks, a heap snapshot mode where all unreferenced objects, only weakly referenced objects, or objects queued for finalization can be removed and an integration wizard for profiling the Java browser plug-in.