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

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

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 – 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.

JAMon

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

jMechanic is an Eclipse Java IDE plugin providing Java Profiling tools. Tools such as CPU Sampling and Heap Summary allow the Java developer to tune up the performance of their Java programs all within the comfort of the Eclipse IDE.

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

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.

Garbage Collector Spy Tool

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.

heapprofile

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 ),

Star J

*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

JavaTreeProfiler

JVMPI based visualization using a TreeMap

(From apps.open-libraries.com)