Open Source Profilers in Java
21 projectsJMeasurement 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.
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.
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.
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.
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.
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++).
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.
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.
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.
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.