Currently G1CollectedHeap is responsible for keeping track of the start time for a GC and pass it along to G1GCPhaseTimes when it is time to print the G1 log details.
Since G1GCPhaseTimes has both a note_gc_start() and a note_gc_end() it seems more stable that G1GCPhaseTimes keeps track of the GC time itself.
Since G1GCPhaseTimes has both a note_gc_start() and a note_gc_end() it seems more stable that G1GCPhaseTimes keeps track of the GC time itself.