Heapster

Heapster is a java agent which monitors garbage collection of objects. Using the Heapster client, you can see graphs of object allocation, the stack traces for object allocation, object histograms, explore retained heap, and much more. This can all be done without using jmap. Just connect the Heapster client to your host JVM! Warning! The object graph functionality is not practical for most JVMs and is somewhat a failed experiment.

Read the User Guide to find out more.

You can download the Heapster distribution here.