Open Source Profilers in Java

21 projects

JAMon (Java Application Monitor) is a free, thread-safe API for monitoring production Java applications. Tracks hits, execution times (total, avg, min, max), and concurrency. Modules for SQL, HTTP, Spring, Log4j, EJB; viewable via JAMon WAR, JMX, or API.

Details

JMeasurement is a free, simple Java API for monitoring runtime and usage (count, parallel activation, last activation, deviation) at user-defined points in production code. It can automatically monitor interface methods. Includes renderers for text, CSV and HTML; JMX is supported.

Details

MessAdmin is a notification system and session administration plug-in for Java EE web applications, providing detailed statistics with zero code changes. Install as a servlet/filter; optional plugins add JMX, Log4J, Ehcache stats, and more.

Details

NetBeans Profiler is the profiling solution integrated into Apache NetBeans IDE. It provides CPU and memory profiling, thread monitoring, heap walker, and profiling points with low overhead and task-based presets. Built on dynamic bytecode instrumentation.

Details
EurekaJInactive

EurekaJ is an open-source, standards-based profiler for Java that integrates with the BTrace agent. It provides profiling and monitoring features that complement BTrace's dynamic tracing capabilities.

Details
japexInactive

Japex is a framework for writing Java micro-benchmarks. It factors out driver loading, VM warm-up, threading, and timing so developers define drivers and an XML config to compare implementations. Produces XML and HTML reports with charts (e.

Details
AppspyInactive

Appspy is a user-experience profiling tool for Java applications. It monitors how users interact with the application and how the application responds to requests, providing data to improve quality, performance, and efficiency. Web-based; Apache License 2.

Details
DrMemInactive

DrMem (SimpleProfiler) is a simple JVMPI-based heap profiler for Java. It attaches to a running JVM and periodically produces heap statistics; useful for diagnosing OutOfMemoryErrors.

Details

EJP is an open-source Java profiler based on JVMPI with a plugin architecture. It traces every method invocation and displays execution in hierarchical trees with filters, hot-spot highlighting, and support for large traces. Tracer and Presenter components; usable for languages targeting the JVM.

Details
InfraREDInactive

InfraRED is an AOP-based J2EE performance monitoring tool with AspectJ/AspectWerkz support. Non-intrusive; provides layer-wise and API-level statistics, call trees, JDBC/SQL stats, centralized cluster data, web GUI, and Excel export. Supports WebLogic, JBoss, Tomcat; low overhead for production use.

Details

JIP is a high-performance, low-overhead Java profiler written entirely in Java with no native code. Supports class/package filtering, configurable output including XML, and interactive on/off toggling at runtime, making it suitable for web applications. BSD licensed.

Details
JRatInactive

JRat is the Java Runtime Analysis Toolkit: a low-overhead, open source performance profiler for Java. It persists measurements at runtime; the JRat Desktop (Swing) lets you view and analyze the data.

Details

JavaTreeProfiler is a JVMPI-based profiler that collects method calls into an XML file and displays them in a treemap. Hosted on SourceForge under the jcoverage project; requires JDK 1. 2+, ant, and native build (g++/VC++).

Details
Profiler4jInactive

Profiler4j is an open-source CPU profiler for Java with a remote console and agent. Based on dynamic bytecode instrumentation; 100% Java, no native libs. Provides call graph, call tree, memory monitor, and class list; fine-grained rules apply on the fly.

Details
StopwatchInactive

Stopwatch (Java Stopwatch) is a simple, extensible API for monitoring any part of an application. Reports hits, execution times, and load; extensible via custom engines. Can persist data in-memory or to a database (e.

Details
AllmonInactive

Allmon is a generic system for collecting and storing metrics for performance and availability monitoring. It stores metrics from monitoring infrastructure and supports data-mining and OLAP-style analysis. Usable for production monitoring, development profiling, and QA or load testing.

Details

JBoss Profiler is a log-based profiler using JVMPI and JVMTI. A C agent captures JVM events and writes logs to disk; a web app on JBoss or elsewhere analyzes them in a browser. Suited for remote or firewall-restricted analysis without a local profiler front-end.

Details
JMemProfInactive

JMemProf was a live Java memory profiler suitable for deployment in web containers such as JBoss and Tomcat. It retrieved memory profile information from running applications. Original site is defunct.

Details
JMPInactive

JMP is a profiler for Java that traces object usage and method timings using the JVMPI interface, with a GTK+ UI. It supports heap analysis and call graphs. JVMPI was removed in Java 6; JMP only works with Java 1.

Details

OKTECH Profiler was a low-impact, sampling (and optional instrumentation) profiler for Java. It dumps profile data to a binary file for later analysis, supports local JVM or remote JMX, and allows tunable overhead. Project was hosted on Google Code and is now archived.

Details
TIJmpInactive

TIJmp (Tools Interface Java Memory Profiler) is a small, fast memory profiler for Java 6 and later. Written in C (JVMTI/JNI) and Java with a Swing UI. Runs in the same JVM as the profiled application.

Details