NetBeans Profiler is a project to provide a full-featured profiling functionality for the NetBeans IDE. The profiling functions include CPU, memory and threads profiling as well as basic JVM monitoring, allowing developers to be more productive in solving memory or performance-related issues.
Link to Netbeans profiler
InfraRED is a tool for monitoring performance of a J2EE application and diagnosing performance problems. It collects metrics about various aspects of an application's performance and makes it available for quantitative analysis of the application.
InfraRED has the ability to monitor the complex architecture of J2EE application environments, provide detailed information for analysis and reporting, alert on performance related problems and guide you to determine the root cause of the problem. When you are trying to identify a performance issue that is causing your production application not meet customer expectations or you are trying to proactively identify issues prior to deploying your application, InfraRED is essential to helping you save time, and ultimately ensure a better performing, more scalable Java application.
InfraRED uses AOP to weave the performance monitoring code into the application. It comes with out of the box support for AspectJ and Aspectwerkz. It can also be made to work with other AOP frameworks such as JBoss AOP etc.Link to InfraRED
JIP - Java Interactive Profiler
JIP is a high performance, low overhead profiler that is written entirely in Java. JIP gives the developer the ability to turn the profiler on and off while the VM is running. You can also filter out classes and packages as well as control the output.
Link to JIP
JMP - Java Memory Profiler
JMP is a profiler for java that can be used to trace objects usage and method timings. JMP uses the JVMPI interface to gather statistics and interact with the JVM. JMP uses a GTK+ interface to show the status.
Link to JMP
YourKit, LLC is a new technology leader, creator of the most innovative and intelligent tool for profiling Java applications. The YourKit Java Profiler has been already recognized by the IT professionals and analysts as the best profiling tool for Java.
With YourKit Java Profiler, both CPU and memory profiling have come to the highest professional level, where one can profile even huge applications with maximum productivity and zero overhead.
Link to YourKit web site
JProfiler is an award-winning all-in-one Java profiler. JProfiler's intuitive GUI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.
Link to JProfiler
Optimizeit was one of the best of breed commercial profilers along with yourkit. They have now been taken over by Borland.
Link to Optimizeit (from Borland now)
P6Spy is an open source framework for applications that intercept and optionally modify database statements. One of the best profilers that can debug, instrument your database calls without any code changes. It does this by providing a pseudo-JDBC driver that passes calls on to the real one.
Link to P6Spy
JRat is the Java Runtime Analysis Toolkit. Its purpose is to enable developers to better understand the runtime behavior of their Java programs. The term "behavior" includes, but is not limited to performance profiling.
The Eclipse Test & Performance Tools Platform (TPTP) Project is an open source Top Level Project of the Eclipse Foundation.
Link to Eclipse TPTP
Troubleshooting tools in JDK 6 (Mustang)
The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.
Link to these tools