Description
I was trying to parse some GC logs that were made in an older version of Java 7:
> java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
Using the following options:
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xloggc:log/gc.log
This contained entries like:
INFO | jvm 1 | 2015/05/03 16:12:38 | 357996.729: [GC pause (mixed), 0.23787900 secs]
INFO | jvm 1 | 2015/05/03 16:12:38 | [Parallel Time: 143.7 ms]
INFO | jvm 1 | 2015/05/03 16:12:38 | [GC Worker Start (ms): 357996730.7 357996730.8 357996730.8 357996730.8
INFO | jvm 1 | 2015/05/03 16:12:38 | Avg: 357996730.8, Min: 357996730.7, Max: 357996730.8, Diff: 0.2]
GCViewer fails to parse these as it doesn't seem to understand the information for individual worker threads.
I also tried the same options on a later Java 7 version:
> java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
This doesn't have the information for individual worker threads (but there are other problems which I'll raise separately).
I think I have tracked down the difference to the -XX:G1LogLevel
option. Even though I haven't set this option I eventually found some description on http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html. According to that, setting the -XX:+PrintGCDetails
option should set the log level to finer. For some reason the log level in the previous version was finest.
So this is a request to support the finest log level. I actually don't care about the individual worker threads I just want to be able to load the log file. I am currently combining the lines together and it seems to ignore the individual worker thread information.