Skip to content

FAQ ​

How do I enable GC logging? ​

See Enabling GC Logging. Short version:

  • Java 9+: -Xlog:gc*:file=gc.log:time,uptime
  • Java 8: -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log

Is my log uploaded to a server? ​

No. EasyGC parses the log entirely in your browser with JavaScript. Nothing is transmitted, stored or logged. You can even disconnect from the network after loading the page — or run the site from source yourself.

Which formats are supported? ​

All mainstream JVM GC log formats: unified logging (-Xlog:gc*, Java 9+) for G1 / ZGC / Shenandoah, and classic PrintGCDetails output (Java 8 and earlier) for Serial / Parallel / ParNew+CMS / G1, from Java 1.2 through 25. Lines that cannot be recognized are skipped and counted in the report header.

My report says "No recognizable GC events" ​

The log probably wasn't produced with GC logging enabled, or it was truncated to non-GC lines. Double-check the JVM flags and make sure the file actually contains lines like GC(...) or [GC (Allocation Failure).

Why does the report show fewer lines than my file contains? ​

Only lines that describe GC activity are parsed. Detail lines (region stats, safepoints, application log noise) are intentionally ignored — the header shows exactly how many lines were recognized out of how many total.

What is a "good" GC throughput? ​

Above 95% is healthy for most services; batch jobs can afford less. Below 90% means roughly a tenth of your CPU budget is spent on garbage collection — worth tuning.

Are Full GCs always bad? ​

Mostly, yes: they stop the entire JVM and are the most expensive collection. A rare Full GC right after startup is harmless; recurring Full GCs mean the old generation is under pressure — enlarge the heap or find the leak.

The analyzer found a memory leak. What next? ​

  1. Reproduce under load and capture a heap dump (-XX:+HeapDumpOnOutOfMemoryError or jmap).
  2. Analyze the dominator tree with a heap-dump analyzer (HeapHero, Eclipse MAT).
  3. Check caches, ThreadLocals, static collections and listener registrations — the usual suspects.

Does it work offline? ​

Yes — after the page loads, everything runs client-side. The site can also be deployed as a static build on an intranet.

Are there other GC log analyzers? ​

Yes — the classic one is GCViewer (LGPL, a single runnable jar, command-line batch export), a good fit when logs cannot leave an internal network. It reads exactly the same log as EasyGC, so the two can be used to cross-check each other. Full walkthrough: GCViewer Usage Guide.