< prev index next >

hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp

Print this page
rev 7125 : 7176220: 'Full GC' events miss date stamp information occasionally
Summary: Move date stamp logic into GCTraceTime
Reviewed-by: brutisso, tschatzl


 150     HandleMark hm;  // Discard invalid handles created during verification
 151     Universe::verify(" VerifyBeforeGC:");
 152   }
 153 
 154   // Verify object start arrays
 155   if (VerifyObjectStartArray &&
 156       VerifyBeforeGC) {
 157     old_gen->verify_object_start_array();
 158   }
 159 
 160   heap->pre_full_gc_dump(_gc_timer);
 161 
 162   // Filled in below to track the state of the young gen after the collection.
 163   bool eden_empty;
 164   bool survivors_empty;
 165   bool young_gen_empty;
 166 
 167   {
 168     HandleMark hm;
 169 
 170     gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
 171     TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
 172     GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer->gc_id());
 173     TraceCollectorStats tcs(counters());
 174     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
 175 
 176     if (TraceGen1Time) accumulated_time()->start();
 177 
 178     // Let the size policy know we're starting
 179     size_policy->major_collection_begin();
 180 
 181     CodeCache::gc_prologue();
 182     Threads::gc_prologue();
 183     BiasedLocking::preserve_marks();
 184 
 185     // Capture heap size before collection for printing.
 186     size_t prev_used = heap->used();
 187 
 188     // Capture metadata size before collection for sizing.
 189     size_t metadata_prev_used = MetaspaceAux::used_bytes();
 190 




 150     HandleMark hm;  // Discard invalid handles created during verification
 151     Universe::verify(" VerifyBeforeGC:");
 152   }
 153 
 154   // Verify object start arrays
 155   if (VerifyObjectStartArray &&
 156       VerifyBeforeGC) {
 157     old_gen->verify_object_start_array();
 158   }
 159 
 160   heap->pre_full_gc_dump(_gc_timer);
 161 
 162   // Filled in below to track the state of the young gen after the collection.
 163   bool eden_empty;
 164   bool survivors_empty;
 165   bool young_gen_empty;
 166 
 167   {
 168     HandleMark hm;
 169 

 170     TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
 171     GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer->gc_id());
 172     TraceCollectorStats tcs(counters());
 173     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
 174 
 175     if (TraceGen1Time) accumulated_time()->start();
 176 
 177     // Let the size policy know we're starting
 178     size_policy->major_collection_begin();
 179 
 180     CodeCache::gc_prologue();
 181     Threads::gc_prologue();
 182     BiasedLocking::preserve_marks();
 183 
 184     // Capture heap size before collection for printing.
 185     size_t prev_used = heap->used();
 186 
 187     // Capture metadata size before collection for sizing.
 188     size_t metadata_prev_used = MetaspaceAux::used_bytes();
 189 


< prev index next >