Wednesday, December 28, 2005

Patty on SourceForge?

I've worked a bit more on the profiling tool for the JDK 1.5.0, which uses JVMTI. The benefits of this profiler are, in comparison with others:
  • You can target the classes you wish to profile for method execution and coverage analysis
  • There is no need to instrument the classes at build time in the ant script
  • Using JVMTI, any Java process can be analysed. There are no sources required.
  • For an existing project to use the profiling tool means modifying the startup-line of the application to include the profiling agent in the JVM. That is all.
  • Because it targets specific classes for analysis, the rest of the classes not targeted run at full speed ( unless code coverage analysis is turned on ).
  • It currently analyses thread contention, method execution times of the targeted classes and code coverage of the targeted classes.
  • It will (soon) analyse the heap based on how much memory is consumed and can be reached by all objects of a particular class. For example, this allows you to analyse how much memory is referenced by an HTTP session or a singleton.
  • It will eventually include a web interface on Tomcat, where some links can be used as a command interface to the profiling agent. This allows you to instrument/deinstrument classes at runtime and request specific information about heap analysis, etc.
Because it was going on so nicely, I've requested a new opensource project on SourceForge, where I hope the project is going to be hosted. Keep you posted on the acceptance and the link.

[edit]

Patty got approved and is released here: patty

Home page, roadmap, documentation, screenshots, etc. will be added soon. Binaries and source have already been posted.

2 comments:

Silvino Neto said...

As we have discussed this one seems to be an audacious and promising project. Hopefully I'll be able to help you out whenever you need. Cheers.

Gerard Toonstra said...

Sure. I'm just getting up to speed with the web side of this all so that analysis is easier. I've already managed to get my C-code working with several threads and all, it's just aggregating it now and then continue on memory stack analysis stuff, plus runtime class instrumentation.