gitmyhub

GCViewer

Java ★ 4.6k updated 1mo ago

Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)

A desktop tool for Java developers that reads JVM garbage collection log files and displays them as charts showing memory usage, pause durations, and throughput over time.

Javasetup: easycomplexity 2/5

GCViewer is a free desktop tool for Java developers who need to understand what their application's memory cleanup is doing. Java programs periodically run a process called garbage collection to reclaim memory that is no longer being used. When something goes wrong, or when performance feels sluggish, the JVM (the program that runs Java code) can write a log file describing every cleanup event. GCViewer reads those log files and turns them into charts and statistics.

The main view is a chart that plots memory usage over time. Different colored lines and rectangles represent different types of cleanup events: full cleanups that pause the whole application are shown in black, while background cleanup work appears in other colors. You can see at a glance how much memory the application was using, how often pauses occurred, and how long each pause lasted. There are also tabs showing a detailed event list and any warnings the parser found while reading the log.

The data panel alongside the chart gives you numbers: total memory allocated, average pause duration, pause frequency, throughput (the percentage of time the application was actually running rather than pausing for cleanup), and several other metrics. Values with a high spread are grayed out to signal that the average alone is not meaningful.

You can run GCViewer as a desktop application by double-clicking the jar file, or from the command line to produce a CSV or plain-text summary report, optionally with a chart image. It supports log files from a wide range of JVM vendors and versions, including Oracle JDK 1.6 through 1.8, OpenJDK 9 and 10, IBM JDK, HP-UX JDK, and BEA JRockit.

The project is a fork of the original GCViewer by Hendrik Schreiber, which stopped receiving updates in 2008. This fork continued development to add support for newer Java versions and garbage collectors, including the G1 collector introduced in Java 7. It is released under the GNU LGPL license.

Where it fits