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 (hprof, OptimizeIt(tm), JProbe(tm), etc).
Memory leaks can arise in Java applications due to unintentional object references. For example, an application may fail to remove callback listeners or close streams, preventing these objects from being garbage collected. Even minor leaks can grow to major problems in deployed systems.
The profiler tracks memory usage within the application by using tables of WeakReferences. The developer selects which classes should be tracked and runs an automated classfile editor (using BCEL) to add profiling instructions to the constructors.
- 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. In case of OutOfMemoryExceptions you simply verify your log file for the number of created objects.
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.
EJP is absolutely free software.
Special features of EJP
every single method invocation is traced, which means you get the complete trace of a programs execution;
as of version 2.0, huge execution traces can be instantly loaded up and browsed on a tree view;
plugin architecture allows for creation of custom modifications to the displayed execution tree to better filter out information
- 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.
Advantages of JAMon
Using JAMon is easy.
JAMon requires no special administration accounts.
JAMon can be used to monitor production systems.
JAMon can be used to monitor production systems.
JAMon is flexible.
- 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.
JMemProf is implemented in C using the JVMPI (JVM Profiling Interface). There are two parts, a shared object loaded into the JVM at startup, and a WAR file containing a Java servlet that uses a JNI interface to the profiling extension to retrieve and display memory profile information collected during execution.
- 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.
JMP normally uses one window to show the classes in memory. Each class has summary information for number of instances and total bytes of used memory for all the instances.
JMP also shows method timings and calls in another window. Several columns show time taken in the method, number of calls to each method, time taken in methods called.
JMP collects information about which method are called and from where, this information is used to build call graphs.
JMP is written in C, it is designed for speed.
- 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.
While JRat is still in beta, without adding code to your application it can...
accumulate timing statistics (a few ways)
create trace logging
track rate methods are called over time
track the response time of methods over time
JRat is design is based on three types of components. Hooks enable an application to be monitored at runtime. Events generated by hooks are sent to the JRat Runtime where processing is delegated to one or more handlers. Handlers produce output files during runtime and at shutdown.
- A JVMPI based profiler for Java that collects all methods calls in a XML File and displays them in a TreeMap.
- 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.
The basis of NetBeans Profiler is the JFluid profiling technology, a project that has been originally developed in Sun Laboratories. JFluid uses dynamic bytecode instrumentation to allow for profiling with a dramatically lower overhead, giving the ability to obtain results in situations where the use of other profilers becomes unpractical or impossible.
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.