Extensible Java Profiler

Open-source Java Profiler

Compressed PDF version of the User's Manual.
EJP for Win32
EJP for *nix
Generic files and sources: ejp-r2_2b1-unix-common.tar.gz

Additional pre-build binaries: ppc-osx

Nightly snapshots
Nightly source code snapshots are generated every day a CVS commit occurs.
March 25th., 2005
EJP 2.2beta1 was released. This release fixes all known bugs. It has been tested on various platforms and computer architectures. Mac OS X and Sparc Solaris are now fully supported. New features improve the user experience. Simplified release system: EJP Tracer and Presenter are now versioned and released together.
February 12th., 2004
EJP Tracer 2.1beta2 was released. Fixes an assertion error raised in previous release during shutdown of profiled application.
February 7th., 2004
EJP 2.1beta1 was released. Allows for the profiling of J2EE (an more generaly, huge) applications. Also fixes crashes reported in Jboss and Catalina containers.
December 15th., 2003
EJP 2.0beta1 was released. This major release contains the announced lazy parser, which dramatically reduces loading times and memory consumption in the Presenter.
October 9th., 2003
I finally decided not to develop any EJP plugin for Eclipse. Even if I would have been glad to see EJP integrated into one of my favorite development environments, I recently tried the
Hyades project and was really impressed by the work done so far. For sure this is the profiling, logging and testing platform of the near Java future.

Some good news though: the new lazy implementation of the parser is working like a charm - I did profile the startup of Eclipse (~200 MB of data for main thread) and was able to load the file in EJP in less than 5 seconds! Expect a release soon...
July 4th., 2003
I decided to build an Eclipse plugin. I was thinking about this since a long time (well, since first betas of Eclipse 2.0) without ever starting it. This plugin should integrate the new lazy parser I am working on, which surely will be a major interesting feature.
June 13rd., 2003
New Release: EJP Tracer 1.0beta3 and Presenter 1.0beta2 are out. This release contains all changes from previous news item (2003/06/11).
June 11st., 2003
Multi-threading issues.
An improved version of EJP Tracer is now available on CVS and is currently being tested for release with 1.0beta3. It addresses multi-threading issues reported by many users.
See bellow for nighly snapshots (built after June 3rd., 2003) if you like to live on the bleeding edge and want to give it a try.
May 7th., 2003
New Release: EJP Tracer 1.0beta2 is out. It addresses some of the most frequently reported bugs and limitations. A pre-compiled DLL is now provided for Win32 users.
April 21st., 2002
EJP's User's Manual has been uploaded. It contains useful information for users of the profiler and filters developers.
March 23rd., 2002
New Release: EJP 1.0beta1 is out. This is the first public release.
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 based on the
Java Virtual Machine Profiler Interface (JVMPI). On the contrary of Sun's hprof tool, which generates statistical information, it logs every single method invocation. It can be used to trace the execution of small parts of Java programs and display it in hierarchical trees with some elements hidden or highlighted.

EJP is absolutely free software, which means you do not have and never will have to pay anything to use it.
Special features of EJP (over other free or commercial Java profilers).
  • every single method invocation is traced, which means you get the complete trace of a program's 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 screenshot bellow shows the profiling of a simple Java application with a set of active filters:
  • hot spots highlighting (using customizable number of levels and colors),
  • display of method time and relative cost,
  • accumulation of identical methods for statistics.
[EJP Screenshot]
To be informed of new releases, it is highly recommanded to use SourceForge's Monitor Package feature.
To do this, go to the
project's page and click on every letter icon [Letter icon].

If you are a registered SourceForge user, you will be notified by e-mail when new versions are released.
EJP is hosted by SourceForge:
[SourceForge.net Logo]

Quality: EJP's Java source code is automatically analyzed by PMD, which periodically generates reports of encountered problems (an empty table means no problem was found).

Interoperability: this page is valid HTML 4.01 Strict and valid CSS.
Valid HTML 4.01! Valid CSS!

Integrity: links checked by W3C Link Checker.

Copyright (C) 2002, 2003, 2004 - Sebastien Vauclair, based on a page by Anthony Kruize.
$Id: index.php,v 1.16 2005/03/25 14:30:52 vauclair Exp $