/heapviz

The summarizer portion of our heap visualization tool

Primary LanguageJavaApache License 2.0Apache-2.0

Java Heap Analyzer
Eddie Aftandilian (eaftan@cs.tufts.edu)

This is the front end to our heap visualization system, Heapviz 
(http://www.cs.tufts.edu/research/redline/heapviz/).

This program does the following:
1) takes as input an HPROF heap dump file in binary format
2) parses it
3) builds a graph where each object instance is a vertex and each pointer/
reference is an edge
4) optionally summarizes the graph
5) outputs the graph in GraphML format

I provide a sample heap dump from Dacapo antlr in the file java.hprof.

Running:
1. Type this command at the prompt:
   % java edu.tufts.cs.eaftan.heapvis.Parse bh.hprof
   "java.hprof" is the name of an Hprof heap dump file.  If the heap dump file
   contains more than one heap dump, we will generate GraphML for both.

   You may optionally give the option "-nosummary" to skip the summarization
   step:
   % java edu.tufts.cs.eaftan.heapvis.Parse -nosummary bh.hprof

The build uses Maven (http://maven.apache.org/).  You can build it with the
following command:
$ maven compile

To produce a binary heap dump from the Oracle JVM, use the following command:
java -agentlib:hprof=heap=dump,format=b ToBeProfiledClass

This will dump the heap at the end of program execution.  See the 
documentation referenced above to see how to produce heap dumps at other 
points in program execution.

This code is released under the Apache 2.0 license.  See the LICENSE file in
this directory for details.