Open Source Profilers in Java
NetBeans Profiler is a project to provide a
full-featured profiling functionality for the NetBeans IDE. The profiling functions include CPU, memory and threads profiling as well as basic JVM monitoring, allowing developers to be more productive in solving memory or performance-related issues.
Homepage http://profiler.netbeans.org/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.
Homepage http://jamonapi.sourceforge.net/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.
Homepage http://profiler4j.sourceforge.net/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.
Homepage http://www.jboss.orgMessAdmin 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.
Homepage http://messadmin.sourceforge.net/InfraRED is a tool for monitoring performance of a J2EE application and diagnosing performance problems. It collects metrics about various aspects of an application's performance and makes it available for quantitative analysis of the application.
Homepage http://infrared.sourceforge.net/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.
Homepage http://jrat.sourceforge.net/ 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.
Homepage http://www.mcs.vuw.ac.nz/~djp/djprof/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.
Homepage http://ejp.sourceforge.net/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.
Homepage http://www.lambdaprobe.org/d/index.htmJMeasurement 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.
Homepage http://sourceforge.net/projects/jmeasurement2JIP 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.
Homepage http://sourceforge.net/projects/jiprof/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.
Homepage http://oss.metaparadigm.com/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.
Homepage http://www.khelekore.org/jmp/DrMem 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.
Homepage http://sourceforge.net/projects/simpleprofiler
JHAT is a Java heap dump browser. This tool parses a Java heap dump file (for example, one produced by
jmap -dump
, see above).
jhat
starts a web server that allows objects in the heap to be examined in a web browser. This tool is not meant to be used on production systems and is meant for "offline" analysis of heap dumps. The
jhat
tool is platform independent in the sense that it can be used to view heap dumps produced on any platform. For example, it is possible to view a heap dump produced on the Solaris OS by using
jhat
on Linux.
Homepage JHAT Java Heap Analysis ToolJMAP If this tool is run without any options (other than
pid
or
core
), then it displays information similar to that of the Solaris
pmap
tool. This tool supports several other options for Java heap observability.
Homepage JMAP Java Memory Map