13 Great Tools for Profiling Your Java Applications
Profiling is an essential part of software development. Profiling tools are generally expensive and not affordable for individual developers and freelancers. But, there are several free, open source profiling tools that are as good as commercial tools.
Extensible Java Profiler (EJP) is an open-source profiling tool for Java with a scalable and extensible architecture, allowing its usage for exotic programming languages that use a Java backend.
A Java profiler is a development tool used to optimize the performance of Java programs, by helping to find and tune away expensive parts of them.
Eclipse TPTP Tracing and Profilng Tools
Eclipse TPTP Tracing and Profilng Tools addresses the tracing and profiling phases of the application lifecycle. The Tracing and Profiling Tools Project provides frameworks for building tracing and profiling tools by extending the TPTP Platform.
Eclipse profiler – plugin for profiling Java applications inside of Eclipse. NOTE! Project is dead and does not work on new versions of Eclipse.
JMemProf – Java Web-based Memory Profiler
JMemProf is a live Java memory profiler suitable for deployment in web containers such as JBoss, Tomcat and others. JMemProf allows you to retrieve memory profile information while your application is running.
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.
The Java Application Monitor (JAMon) is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications. JAMon can be used to determine application performance bottlenecks, user/application interactions, and application scalability. JAMon gathers summary statistics such as hits, execution times (total, average, minimum, maximum, standard deviation), and simultaneous application requests. JAMon statistics are displayed in the sortable JAMon
jMechanic – Eclipse Java Profiler
JRat the Java Runtime Analysis Toolkit
The Java Runtime Analysis Toolkit is a low overhead, easy to use, open source performance profiler for the Java platform. JRat monitors an application s execution and persists performance measurements. This data can then be viewed and analyzed using the JRat Desktop, a Swing application.
xdProf is a cross-platform tool that captures and analyzes stack traces sent at a fixed interval from Java Virtual Machines in a distributed system.
The Garbage Collector Spy Tool, or GCspy for short, is a generic and highly-adaptable heap visualisation framework, designed to visualise a wide range of memory management systems, whether they depend on garbage collection or implement explicit de-allocation.
A zero-overhead JVMPI plugin for finding first indications of memory leaks in production environments.
Where commercial tools kill the performance of your application by collecting uninteresting performance data (such as who allocated this object ),
*J is a toolkit which serves two primary purposes:
- To facilitate the collection of dynamic execution data for
Java programs - To provide a framework for implementing analyses of this
collected data quickly and easily
JVMPI based visualization using a TreeMap