Build Systems
Cache Solutions
Charting & Reporting
Chat Servers
Code Analyzers
Code Beautifiers
Code Coverage
Connection Pools
EJB Servers
Expression Languages
Forum Soft
General Purpose
HTML Parsers
Inversion of Control
Issue Tracking
J2EE Frameworks
JSP Tag Libraries
Job Schedulers
Logging Tools
Mail Clients
Network Clients
Network Servers
PDF Libraries
Parser Generators
RSS & RDF Tools
Rule Engines
SQL Clients
Scripting Languages
Search Engines
Source Control
Template Engines
Testing Tools
Text Processing
UML & Modeling
Web Frameworks
Web Mail
Web Servers
Web Services
Web Testing
Wiki Engines
XML Parsers
XML UI Toolkits

Open Source Profilers in Java


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.

Go To JRat

Cougaar Memory Profiler

The Cougaar memory profiler is a tool for debugging memory usage and leaks in any Java application. It features a scalable 100% Java design that is lighter weight than existing JVMPI-based profilers.

Go To Cougaar Memory Profiler

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.

Go To Extensible Java 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.

Go To JMemProf


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.



A simple heap profiler for Java, based on JVMPI. The profiler can be attached to a non-interactive JVM, creating heap statistics from time to time.

Go To DrMem


A JVMPI based profiler for Java that collects all methods calls in a XML File and displays them in a TreeMap.

Go To JTreeProfiler

NetBeans Profiler

NetBeans Profiler is a project to integrate the JFluid profiling technology, which is being developed by Sun, into the NetBeans IDE. The aim of this project is to provide a powerful and flexible profiling solution that is tightly integrated into the IDE workflow. As the size and complexity of Java applications grow, keeping their performance at the required level becomes progressively difficult. That is why we believe profiling should become a natural part of the development work cycle. To achieve that, we would like to make profiling easy-to-use and as unobtrusive as possible - and the JFluid technology that we use, with dynamic bytecode instrumentation at its heart, suits this goal perfectly.

Go To NetBeans Profiler


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 clickable JAMon Report.


JBoss Profiler

JBoss Profiler is a log based profiler using the JVMPI system. It uses an agent written in C that captures events from the JVM and logs them to disk. A web application running on JBoss or another machine can be used to analyze these logs through a web browser.

Go To JBoss Profiler


MessAdmin is a notification system and Session administration for J2EE Web Applications, giving detailed statistics and informations on any Web application. It installs as a plug-in to any Java EE WebApp, and requires zero-code modification.

Go To MessAdmin


nfraRED is a tool for monitoring performance of a J2EE application and diagnosing performance problems. InfraRED uses AOP to weave the performance monitoring code into the application. It comes with out of the box support for AspectJ & Aspectwerkz. Salient Features: * Fully non-intrusive. No coding required by developers. * Layer-wise performance statistics summary (Web, Session, JDBC etc). * API level detailed performance statistics. * Call tree views (like in other profiler tools). * JDBC API and SQL statistics. * Last invocation statistics. * Correlation of statistics across layers. * Support for centralised gathering and presentation of performance data for one or more applications in a cluster. * Remote or local collection of performance metrics. * User-friendly web GUI. * Simplified ant-based integration with application. * Support for multiple application servers * Weblogic * Jboss * Tomcat * Useful for applications with or without use of EJBs. * Export summary of performance statistics into Excel spreadsheets. * Very low overhead, Can be used in production environments. * Ability to save and reload snapshots.

Go To InfraRED


TomcatProbe is a real-time monitoring and management tool for Apache Tomcat. It is very easy to deploy and requires no modification to either Tomcat or running applications. Tomcatprobe allows real-time monitoring of deployed applications and their status, active http sessions and their attributes, datasources, their details and current usage. It also shows requests that are being executed, sizes of application footprints in memory, enables on-the-fly application deployment with JSP precompilation. System information view displays Java runtime version, graphical memory usage, OS information and system properties. \"Quick check\" options allows to check usage of all resources including all datasources, file handles and memory in one click.

Go To TomcatProbe

Java Interactive Profiler (JIP)

JIP is a high performance, low overhead code profiler for Java. It's main features are: 1. It's written entirely in Java and needs no native components. 2. It allows the developer to filter which classes and packages are profiled. 3. There are many options available for controlling the output of the profiler. This makes it easier to manage all of the data that can be generated. There is also an XML output option which makes it easy to manipluate the output using other programs. 4. JIP is interactive, allowing the developer to turn the profiler on and off while the JVM is running. This makes it particularly well suited for profiling web applications. 5. JIP is available under the BSD license.

Go To Java Interactive Profiler (JIP)


Profiler4j is a simple-to-use CPU profiler Java that supports remote profiling and on-the-fly configuration. Its main features are: (1) Based on dynamic bytecode instrumentation. (2) 100% Java. (3) No native library or executable is required. (4) It provides views with call graph, call tree, memory monitor, and class list. (5) Supports fine-grained configuration that can be easily tuned without restarting the profiled JVM. Only the methods you want to profile are instrumented.

Go To Profiler4j


Stopwatch is a free, simple, highly extensible, Java API that allows developers to easily monitor whole application or any part of it. By default Stopwatch generate reports about hits, execution times (total, average, minimum, maximum) as well as load but it can be easily extended to measure anything else by providing custom engine. Out of the box Stopwatch uses an in-memory HSQL database. It is able to persist collected data using a \"storage\". There is \"storage\" provided to persist into HSQL database and custom \"storage\" can be easily integrated.

Go To Stopwatch


JMeasurement is a free and simple java api for monitoring runtime and usage (count, parallel activation, last activation, deviation...) of user defined points in java production code. It an automatically monitor Interface methodes. There are renderers for text, csv and HTML. It is simple to use and extended.

Go To JMeasurement


DJProf is an experimental tool for profiling Java programs which employs AspectJ to insert the necessary instrumentation for profiling rather than, for example, the Java Machine Profiler Interface (JVMPI). DJProf can be used to profile Java programs without modification (i.e. there is no need to recompile them for profiling) and does not require the user to have any knowledge of AspectJ.

Go To DJProf


A small and fast memory profiler for java/6 and later. TIJjmp uses C code to talk to the jvm and it uses swing to show the the tables of information. So tijmp is written in C (using jvmti and jni) and Java. TIJmp runs in the same jvm as the program being profiled. This means that it can easily get access to all things jvmti/jni has to offer.

Go To TIJmp


Allmon is a generic system collecting and storing metrics used for performance and availability monitoring. The main goal of the project is to create a generic system storing various metrics collections used for system performance, health, quality and availability monitoring purposes. The system also provides a set of data-mining algorithms useful for further performance analysis. Allmon is designed to store different metrics values coming from many areas of monitoring infrastructure. The collected data are base for vast range of performance and availability analysis. Allmon collaborates with other analytical tools for OLAP multidimensional analysis and Data Mining processing. The tool can be used for production as well as for development (profiling) and QA (load testing) purposes.

Go To Allmon


Appsy is a \"user experience profiling tool\" : - Monitor how the users actually uses your java applications, - Monitor how your java applications responds to the users requests. Every software need to be improved in term of quality, performance, efficiency ... With Appspy, you will get all the data you need to learn how to improve the value of your software for your users.

Go To Appspy


EurekaJ is an Open Source, Standards based profiler tool for Java applications. EurekaJ integrates with the Java agent BTrace. BTrace has a large feature set that goes hand in hand with features for EurekaJ.

Go To EurekaJ


Japex is a simple yet powerful tool to write Java-based micro-benchmarks. It started as a simple project over a year ago, primarily aimed at testing XML and Fast Infoset performance, but has evolved into a rather sophisticated framework with support for XML and HTML output as well as various types of charts for displaying the results. It is similar in spirit to JUnit in that if factors out most of the repetitive programming logic that is necessary to write micro-benchmarks. This logic includes loading and initializing multiple drivers, warming up the VM, forking multiple threads, timing the inner loop, etc. One of the key design goals for Japex was extensibility. Via the use of a simple model of input and output parameters, it is possible to write micro-benchmarks to test practically anything.

Go To japex

OKTECH Profiler

OKTECH Profiler is a low-impact, sampling profiler for Java. It doesn't require constant connection from a profiler console, as it dumps the profiled information in a binary file. This file can later processed and report can be generated from the overall information. It can be executed in a local JVM or it can connect to a remote JMX server, allowing to profile any kind of application. The overhead of the profiler is very low (and it can be tuned further if required, e.g. reducing the sampling frequency) compared to instrumentation profilers.

Go To OKTECH Profiler


Perf4j is a set of utilities for calculating and displaying performance statistics for Java code. It allows to log instructions execution time using popular logging frameworks, generate performance graphs, expose results via servlet or JMX. For most cases simple annotating method with @Profiled is enough to start collecting data.

Go To Perf4j

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. This site is independent of Sun Microsystems, Inc.