On this page you find the description of all changes in the releases and the binary downloads. If you prefer the source code: * latest in repository: https://github.com/chewiebug/GCViewer/zipball/develop * per release: [release section](https://github.com/chewiebug/GCViewer/releases) `SNAPSHOT` in a version name means 'build based on latest changes in source code'. SNAPSHOT-releases will be updated for every commit. You may register yourself for updates at sourceforge (click any download link and add your email address to the 'keep me updated' box). ### GCViewer 1.38-SNAPSHOT (changes since 1.37) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.38-SNAPSHOT.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.38-SNAPSHOT-dist-mac.zip/download) * updates for Oracle / OpenJDK parser * improve support for parallel GC in unified JVM logging (JDK 25): added "Forward" and "Adjust Pointers" phases, ignore metaspace preamble lines ([issue #291](https://github.com/chewiebug/GCViewer/issues/291)) ### GCViewer 1.37 - 25.05.2026 (changes since 1.36) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.37.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.37-dist-mac.zip/download) * general updates * fix quitting on macOS (supplied by [Johan Kaving](https://github.com/jkaving), [issue #248](https://github.com/chewiebug/GCViewer/pull/248)) * Tuned data panel tabs content alignment to have more consistent UI (supplied by [Nikolay Khramchenkov](https://github.com/xnike), [issue #250](https://github.com/chewiebug/GCViewer/pull/250)) * fix(typo): corrects typo in project README (supplied by [Jeffrey Swan](https://github.com/plan-do-break-fix), [issue #253](https://github.com/chewiebug/GCViewer/pull/253)) * add ability to zoom via scroll wheel (supplied by [Matt Foulks](https://github.com/mfoulks3200), [issue #263](https://github.com/chewiebug/GCViewer/pull/263)) * updates for Oracle / OpenJDK parser * support "Total time for which application threads were stopped" in DataReaderUnifiedJvmLogging ([issue #255](https://github.com/chewiebug/GCViewer/pull/255)) * Support to parse PrintGCID (supplied by [Leslie Zhai](https://github.com/xiangzhai), [issue #260](https://github.com/chewiebug/GCViewer/pull/260)) * enhance support for zgc and shenandoah (supplied by [Cui Weiloong](https://github.com/CuiWeiloong), [issue #261](https://github.com/chewiebug/GCViewer/pull/261)) * support all of unified JVM logging decorations (supplied by [mayswind](https://github.com/mayswind) in [issue #269](https://github.com/chewiebug/GCViewer/pull/269)) ### GCViewer 1.36 - 30.11.2019 (changes since 1.35) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.36.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.36-dist-mac.zip/download) * general updates * add support for Go GC logging (supplied by [Roland Illig](https://github.com/rillig), [issue #187](https://github.com/chewiebug/GCViewer/pull/196)) * fix png export to use current configuration (supplied by [Sandro Rossi](https://github.com/rossisandro), [issue #129](https://github.com/chewiebug/GCViewer/pull/227) * updates for Oracle / OpenJDK parser * add support for Shenandoah gc algorithm in unified gc logging format (supplied by [Mart Mägi](https://github.com/ophillan), [issue #187](https://github.com/chewiebug/GCViewer/pull/187)) * add initial support for Shenandoah gc algormithm in "old" gc logging format ([issue #198](https://github.com/chewiebug/GCViewer/issues/198)) * add support for unified gc logging for all algorithms ([issue #155](https://github.com/chewiebug/GCViewer/pull/155)) * add support for zgc algorithm (supplied by [Yanqi Li](https://github.com/yanqilee) and [Mary Sunitha Joseph](https://github.com/Marysunithajoseph), [issue #216](https://github.com/chewiebug/GCViewer/pull/216)) * enhance information of "summary gc log" export (supplied by [Auston McReynolds](https://github.com/amcrn), [issue #199](https://github.com/chewiebug/GCViewer/issues/199), [issue #201](https://github.com/chewiebug/GCViewer/pull/201), [issue #203](https://github.com/chewiebug/GCViewer/pull/203)) * add support for "uptimemillis" (supplied by [Dennis Lawler](https://github.com/drawlerr), [issue #228](https://github.com/chewiebug/GCViewer/pull/228)) * ignore output of -XX:+PrintStringDeduplicationStatistics for G1 gc logs (jdk8) * handling of System.gc() events generalised (supplied by [Krzysztof Burek](https://github.com/krzysztofburek), [issue #200](https://github.com/chewiebug/GCViewer/issues/200)) * **breaking change** for developers: All events containing "System" were removed from AbstractGCEvent; System.gc() events can be queried by AbstractGCEvent#isSystem() ### GCViewer 1.35 - 28.06.2017 (changes since 1.34.1) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.35.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.35-dist-mac.zip/download) * general updates * Read GCModel in a background thread (supplied by [Hans Bausewein](https://github.com/hbswn), [issue #87](https://github.com/chewiebug/GCViewer/issues/87)) * For those, who use GCViewer as a library: This is a **breaking change** to DataReaderFacade. * improve recognition of log file types ([issue #128](https://github.com/chewiebug/GCViewer/issues/128)) * Command line graph generation random issue ([issue #130](https://github.com/chewiebug/GCViewer/issues/130)) * Chart can be exported from gui as "png" file (supplied by [Àngel Ollé Blázquez](https://github.com/aolle), [issue #131](https://github.com/chewiebug/GCViewer/issues/131)) * Update to summary gc log exporter (supplied by [Tony Mancill](https://github.com/tmancill), [issue #147](https://github.com/chewiebug/GCViewer/issues/147)) * use native file dialog on OS X (supplied by [Christoph Grindstaff](https://github.com/cgrinds), [issue #123](https://github.com/chewiebug/GCViewer/pull/123)) * show min / max interval for full gc (supplied by [Fred Rolland](https://github.com/rollandf), [issue #14](https://github.com/chewiebug/GCViewer/issues/14)) * version info in info dialog / parse logs should now always be shown ([issue #163](https://github.com/chewiebug/GCViewer/pull/163)) * export dialog shows directories (supplied by [Ondrej Mihályi](https://github.com/OndrejM), [issue #168](https://github.com/chewiebug/GCViewer/pull/168)) * prevent closing of JCheckBoxMenuItem in view menu (supplied by [Henry Lin](https://github.com/henray), [issue #173](https://github.com/chewiebug/GCViewer/pull/173)) * support gc logfile rotation (supplied by [Martin Geldmacher](https://github.com/geld0r), [issue #61](https://github.com/chewiebug/GCViewer/issues/61)) * update french translation (supplied by [Thomas Peyrard](https://github.com/tpeyrard), [issue #182](https://github.com/chewiebug/GCViewer/pull/182)) * updates for Oracle / OpenJDK parser * avoid negative pauses for "application stopped" events ([issue #128](https://github.com/chewiebug/GCViewer/issues/128)) * G1: allow for "," in G1Ergonomics timestamps ([issue #128](https://github.com/chewiebug/GCViewer/issues/128)) * G1: handle extended "remark" event format in jdk1.8.0_60 ([issue #149](https://github.com/chewiebug/GCViewer/issues/149)) * CMS: handle combination of `-XX:+ScavengeBeforeRemark` and `-XX:+PrintHeapAtGC` ([issue #132](https://github.com/chewiebug/GCViewer/issues/132)) * CMS: handle "," in "concurrent mode failure" timestamps ([issue #135](https://github.com/chewiebug/GCViewer/issues/135)) * parallel: handle combination of `-XX:+PrintGCCause` and `-XX:+PrintTenuringDistribution` ([issue #140](https://github.com/chewiebug/GCViewer/issues/140)) * CMS: handle output of `-XX:+PrintHeapBeforeFullGC` + `-XX:+PrintHeapAfterFullGC` ([issue #157](https://github.com/chewiebug/GCViewer/issues/157)) ### GCViewer 1.34.1 - 31.01.2015 (changes since 1.34) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.34.1.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.34.1-dist-mac.zip/download) * general updates * switch to jdk 8 * fix doclint errors for javadoc with jdk 8 (supplied by [Bernd Eckenfels](https://github.com/ecki), [issue #124](https://github.com/chewiebug/GCViewer/issues/124), [issue #125](https://github.com/chewiebug/GCViewer/issues/125)) * preserve timezone information in datestamps (requires jdk 8; supplied by [Reinhard Nägele] (), [issue #112](https://github.com/chewiebug/GCViewer/issues/112), [issue #113](https://github.com/chewiebug/GCViewer/issues/113)) * fix test failure related to line endings ([issues #116](https://github.com/chewiebug/GCViewer/issues/116), [#120](https://github.com/chewiebug/GCViewer/issues/120)) * updates for Oracle / OpenJDK parser * CMS: support combination of `-XX:+PrintTenuringDistribution` and `-XX:+PrintPromotionFailure` ([issue #94](https://github.com/chewiebug/GCViewer/issues/94)) * CMS: support combination of `-XX:+PrintTenuringDistribution` and `-XX:+PrintFLSStatistics` ([issue #127](https://github.com/chewiebug/GCViewer/issues/127)) ### GCViewer 1.34 - 30.11.2014 (changes since 1.33) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.34.jar/download) | [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.34-dist-mac.zip/download) * general updates * save state of timestamp ruler (show time or date) (supplied by [Maciej Kwiecien](https://github.com/xylu), [issue #88](https://github.com/chewiebug/GCViewer/issues/88)) * fix an issue in AboutDialog with NimbusLookAndFeel (supplied by [Frank Dietrich](https://github.com/SubOptimal), [issue #89](https://github.com/chewiebug/GCViewer/issues/89)) * "used heap" line correctly shows heap level at beginning and end of pause (before, length of pause was ignored) [issue #95](https://github.com/chewiebug/GCViewer/issues/95)) * new command line argument "-t " to set export type (supplied by [Samuel Mendenhall](http://engineersamuel.github.io/dbits/), [issue #103](https://github.com/chewiebug/GCViewer/pull/103)) * new metric `max heap after full gc` should help to determine heap sizing * new metric `max tenured heap after concurrent gc` and `avg tenured heap after concurrent gc` should also help to determine heap sizing * fix bug drawing total / tenured / young heap ([issue #111](https://github.com/chewiebug/GCViewer/issues/111)) * updates for Oracle / OpenJDK parser * G1: parsing of logfiles with datestamps but without timestamps ([issue #51](https://github.com/chewiebug/GCViewer/issues/51)) * G1: support `-XX:+PrintGCCause` in combination with `-XX:+PrintTenuringDistribution` ([issue #105](https://github.com/chewiebug/GCViewer/issues/105)) * G1: improve support for Java 8 (read full heap information for `Full gc` events) * CMS: ignore output of `-XX:+PrintCMSInitiationStatistics` * parse output produced by `-XX:+PrintGCApplicationStoppedTime`, show it in chart, event details and pause tabs (issues [#25](https://github.com/chewiebug/GCViewer/issues/25), [#90](https://github.com/chewiebug/GCViewer/issues/90), [#91](https://github.com/chewiebug/GCViewer/issues/91), [#106](https://github.com/chewiebug/GCViewer/issues/106)) ### GCViewer 1.33 - 30.10.2013 (changes since 1.32) [download](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.33.jar/download) * general updates * fix isSignificant for fullGcPause on gui and in command line mode (supplied by [Yin Xunjun](https://github.com/elsewhere-), [issue #64](https://github.com/chewiebug/GCViewer/issues/64)) * new menu items in the "help" menu: "readme" and "license" * change JDK version from 1.6 to 1.7 (no support for specific mac version any more) * fix display of "tenured heap" numbers in memory tab (derive from "young heap" when no information was present in event) * publish gcviewer to maven central (supplied by [Reinhard Nägele](https://github.com/unguiculus), [issue #54](https://github.com/chewiebug/GCViewer/pull/54)) * command line mode supports generation of image files (supplied by [Eugene Zimichev](https://github.com/undefz), [issue #72](https://github.com/chewiebug/GCViewer/pull/72)) * support reading GZIPped input streams (supplied by [Hans Bausewein](https://github.com/hbswn), [issue #74](https://github.com/chewiebug/GCViewer/issues/74)) * updates for Sun / Oracle parser * G1: support decimal values in the log format (supplied by [Stephan Schroevers](https://github.com/Stephan202), [issue #58](https://github.com/chewiebug/GCViewer/pull/58) and [Ryan Gardner](https://github.com/ryangardner), [issue #65](https://github.com/chewiebug/GCViewer/pull/65)) * G1: ignore output of `-XX:+PrintAdaptiveSizePolicy` (supplied by [Ryan Gardner](https://github.com/ryangardner), [issue #65](https://github.com/chewiebug/GCViewer/pull/65)) * G1: ignore output of `-XX:+PrintGCCause` (jdk 1.7.0_40, supplied by [Ryan Gardner](https://github.com/ryangardner), [issue #65](https://github.com/chewiebug/GCViewer/pull/77)) * G1: improve support for `-XX:+PrintTenuringDistribution` ([issue #63](https://github.com/chewiebug/GCViewer/pull/63))) * Parallel: support promotion failed events where type (`GC--`) name is interspersed with detailed events ([issue #76](https://github.com/chewiebug/GCViewer/issues/76)) * CMS: ignore `GC locker: Trying...` in logs (supplied by [Michi Gysel](https://github.com/theScythe), [issue #83](https://github.com/chewiebug/GCViewer/issues/83)) * support full datestamps near timestamps everywhere in a log line (jdk 1.7.0_40, [issue #80](https://github.com/chewiebug/GCViewer/issues/80)) * ignore output of `-XX:+PrintReferenceGC` ([issue #79](https://github.com/chewiebug/GCViewer/issues/79)) ### [GCViewer 1.32](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.32.jar/download) 14.03.2013 (changes since 1.31) [download mac version](http://sourceforge.net/projects/gcviewer/files/gcviewer-mac-1.32.zip/download) * general updates * new graphs for tenured and young generation * clicking on scrollbar in chart moves exactly one page ([issue #28](https://github.com/chewiebug/GCViewer/issues/28)) * support for command line only mode (supplied by [Peter Bilstein](https://github.com/pbilstein), [issue #26](https://github.com/chewiebug/GCViewer/pull/26)) * support decimals for zoom factor (supplied by [Bernd Eckenfels](https://github.com/ecki), [issue #39](https://github.com/chewiebug/GCViewer/pull/39)) * better recognition of file format (supplied by [Andrey Skripalschikov](https://github.com/debugger-rus), [issue #42](https://github.com/chewiebug/GCViewer/pull/42)) * improved performance in chart for large gc logs (supplied by [Neil Gentleman](https://github.com/nigelzor), [issue #48](https://github.com/chewiebug/GCViewer/pull/48)) * add new export format "simple gc log" (gchisto compatible, [issue #49](https://github.com/chewiebug/GCViewer/issues/49)) * updates for Sun / Oracle parser * support for G1 algorithm updated * support `-XX:+PrintAdaptiveSizePolicy -XX:-UseAdaptiveSizePolicy` (print without use, [issue #36](https://github.com/chewiebug/GCViewer/pull/36)) * support `-XX:PrintCMSStatistics=2` (output ignored, [issue #33](https://github.com/chewiebug/GCViewer/pull/33)) * support `-XX:+CMSScavengeBeforeRemark` in Sun JDK1.5 ([issue #41](https://github.com/chewiebug/GCViewer/issues/41)) * support `-XX:+PrintTenuringDistribution` for OpenJDK1.6.0_22 ([issue #60](https://github.com/chewiebug/GCViewer/issues/60)) * updates for JRockit parser * better support for JRockit 1.5 (supplied by [Rupesh Ramachandran](https://github.com/rupeshr), [issue #45](https://github.com/chewiebug/GCViewer/issues/45)) * support for JRockit 1.6 (supplied by [Rupesh Ramachandran](https://github.com/rupeshr), [issue #29]( https://github.com/chewiebug/GCViewer/pull/29)) * updates for IBM parser * support large numbers in J9 log files (supplied by [Bernd Eckenfels](https://github.com/ecki) + [Scott Fraser](https://github.com/sfraser), [issue #40] ()) ### [GCViewer 1.31](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31.zip/download) 14.07.2012 (changes since 1.31-RC5) * updates to the Sun / Oracle G1 parser * support new output format (`-XX:+PrintGCDetails`) in jdk 1.7u2+ * support `-XX:+PrintTenuringDistribution` (output ignored) * support `-XX:+PrintGCApplicationStoppedTime` (output ignored) * support `-XX:+PrintGCApplicationConcurrentTime` (output ignored) * updates to the Sun / Oracle CMS parser * support `-XX:+CMSScavengeBeforeRemark` * support `-XX:+PrintPromotionFailure` (output ignored) * support AdaptiveSizePolicy-CMS (`-XX:+UseConcMarkSweepGC` `-XX:+PrintAdaptiveSizePolicy`) * improved performance in chart for large gc logs * support B as memory unit * bug in unittests fixed when they were run in a different timezone than GMT+1 * support for OSX application bundles (supplied by [Johan Kaving](https://github.com/jkaving)) * support for new timestamp format in IBM JDK 6 (supplied by [Cka3o4Huk](https://github.com/Cka3o4Huk)) ### [GCViewer 1.31-RC5](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31-RC5.zip/download) 05.02.2012 (changes since 1.31-RC4) * `-XX:+PrintAdaptiveSizePolicy` implemented for java 1.4 / 1.5 as well * small bugfixes in G1 parser / metric calculation * G1: treat "Mark stack is full" messages as separate event * improved accuracy of young and tenured generation in chart ### [GCViewer 1.31-RC4](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31-RC4.zip/download) 11.01.2012 (changes since 1.31-RC3) * "zero"-point of chart starts with first gc event (not always assumed, that "0" seconds is start) * new panel showing details about gc pauses found in the log file * ignore entries made by `-XX:+PrintHeapAtGC` * ignore entries made by `-XX:+PrintAdaptiveSizePolicy` * horizontal scrolling in chart with mouse wheel is faster ### [GCViewer 1.31-RC3](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31-RC3.zip/download) 04.12.2011 (changes since 1.31-RC2) * More accurate parsing of G1 GC logs * initiatingOccupancyFraction is calculated for G1 as well * view settings are remembered between sessions * new lines allowing more detailed analysis of concurrent collections * "concurrent collections": cyan vertical line for every start and pink vertical line for every end of a concurrent collection * "initial mark level": yellow line indicating tenured heap usage when concurrent collection starts * less parser errors shown (detailed heap sizing statements in the of log files ignored) ### [GCViewer 1.31-RC2](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31-RC2.zip/download) 17.11.2011 (changes since 1.31-RC1) * new metric `promotion` in memory tab * Update of version information in about dialog * about dialog closes when `escape` is pressed ### [GCViewer 1.31-RC1](http://sourceforge.net/projects/gcviewer/files/gcviewer-1.31-RC1.zip/download) 05.11.2011 (changes since 1.29) * option `-XX:+PrintGCDateStamps` is supported * the following CMS full GCs are recognised: `ParNew (promotion failed)` and `CMS (concurrent mode failure)` * experimental support for G1 GC algorithm (`-verbose:GC`, but not `-XX:+PrintGCDetails`) * Parser improved to reduce amount of unparseable lines -> better accuracy of metrics * More detailed informations about pause times (min / max / avg) * More detailed informations about heap usage (total heap / tenured / young / perm) * CMS GC: initiatingOccupancyFraction in memory tab (start of concurrent collections) * Parse error dialog is not shown, when logfile is watched * smaller gcviewer-xxx.jar (*.psd removed) * Needs JVM 1.6 to run (1.4 before)