-XX:+PrintGC and -XX:+PrintGCDetails use different timers to track the G1 collection pauses. It turns out that the timing used by -XX:+PrintGCDetails only covers part of the pause. Running SPECjbb2005 I got GC pause logging like this: PrintGCDetails: 13 ms PrtinGC: 57 ms PrintSafepointStatistics: 61 ms The PrintSafepointStatistics is as close to the actual pause as we can get. PrintGC does not cover the whole pause but is fairly close. PrintGCDetails is missing a large part of the pause. To analyze G1 performance we normally run with PrintGCDetails, so it is important that this information is correct.
|