Analysis of VerboseGC Traces
The Garbage Collection Analyzer (GCA) tool parses through
verbosegc output of a Java virtual machine (JVM) in order to
present it in a more meaningful way.
gca.zip - JAR libraries plus API docs. About
|February 24, 2005 ||Posted GCA 0.4.0 - Added JDK
1.4.2 support, minor GUI enhancements, persistent user preferences
remember which trace you viewed last, text summary displays beginning
and ending trace times and percent GC.
|February 11, 2005 ||Posted GCA 0.3.1 - Added JDK
1.4.1 support. This was trivial since 1.4.1 and 1.3.1 have same
|February 9, 2003 ||Posted GCA 0.3.0 - Added file
browser to trace file entry field.
|February 2, 2003 ||Posted GCA 0.2.1 - Patched a
bug for cases where the number of data points exceeded the number
|January 10, 2003||Posted GCA 0.2.0. - Now the
verbosegc trace file and jdk type are specified through a GUI.
It's still very rough though.
|January 1, 2003||Posted GCA 0.1.0. - This is
the initial get-it-out-quick version. All options are specified
at the command line.
gcasrc.zip - GCA source code. About 90 KB.
The GCA tool processes verbosegc output by storing the records
internally to summarize them statistically. These summaries
are referred to as views into the
verbosegc. Presently there are only two views: a text summary
and a graphical histogram. A sample text view is show below.
First GC time: Wed, Feb 09, 08:43:40 PST
Last GC time: Wed, Feb 09, 12:34:11 PST
Total GCs: 395
Total GC Time: 27571 msec
Average GC Time: 69 msec
Percent GC Time: 0%
Max GC time: 112 msec on Wed Feb 09 10:49:48 PST 2005
A histogram from the same sample run looks like
Here are some features I'm either contemplating or working
If you have any questions about GCA, feel free to email me at
"pglezen at us dot ibm dot com". I
can't gaurantee a timely response since I work on this on my
own time. But I am interested in feedback.
- The ability to export the histogram in a graphics format
such as JPG, GIF or PNG. Unfortunately, the standard APIs
for this are only included in JDK 1.4. I'm not sure how I
want to introduce such a dependency at this stage. Perhaps
I can programmatically make this feature available only if
running a Java 1.4 JDK.
- Better API documentation for those who wish to extend
GCA for themselves.
- Detect and count the number of manual GCs (those that do not
result from allocation failures).