< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp

Print this page
rev 48920 : [backport] Use PLAB for evacuations instead of TLAB


 208           delete worker_slices[i];
 209         }
 210         FREE_C_HEAP_ARRAY(ShenandoahHeapRegionSet*, worker_slices);
 211 
 212         CodeCache::gc_epilogue();
 213         JvmtiExport::gc_epilogue();
 214       }
 215 
 216       heap->set_full_gc_move_in_progress(false);
 217       heap->set_full_gc_in_progress(false);
 218 
 219       if (ShenandoahVerify) {
 220         heap->verifier()->verify_after_fullgc();
 221       }
 222     }
 223 
 224     {
 225       ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_heapdumps);
 226       heap->post_full_gc_dump(_gc_timer);
 227     }
 228 
 229     if (UseTLAB) {
 230       ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs);
 231       heap->resize_all_tlabs();
 232     }
 233   }
 234 
 235 
 236   if (UseShenandoahMatrix && PrintShenandoahMatrix) {
 237     LogTarget(Info, gc) lt;
 238     LogStream ls(lt);
 239     heap->connection_matrix()->print_on(&ls);
 240   }
 241 }
 242 
 243 void ShenandoahMarkCompact::phase1_mark_heap() {
 244   GCTraceTime(Info, gc, phases) time("Phase 1: Mark live objects", _gc_timer);
 245   ShenandoahGCPhase mark_phase(ShenandoahPhaseTimings::full_gc_mark);
 246 
 247   ShenandoahHeap* heap = ShenandoahHeap::heap();
 248 
 249   ShenandoahConcurrentMark* cm = heap->concurrentMark();
 250 
 251   // Do not trust heuristics, because this can be our last resort collection.
 252   // Only ignore processing references and class unloading if explicitly disabled.




 208           delete worker_slices[i];
 209         }
 210         FREE_C_HEAP_ARRAY(ShenandoahHeapRegionSet*, worker_slices);
 211 
 212         CodeCache::gc_epilogue();
 213         JvmtiExport::gc_epilogue();
 214       }
 215 
 216       heap->set_full_gc_move_in_progress(false);
 217       heap->set_full_gc_in_progress(false);
 218 
 219       if (ShenandoahVerify) {
 220         heap->verifier()->verify_after_fullgc();
 221       }
 222     }
 223 
 224     {
 225       ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_heapdumps);
 226       heap->post_full_gc_dump(_gc_timer);
 227     }





 228   }
 229 
 230 
 231   if (UseShenandoahMatrix && PrintShenandoahMatrix) {
 232     LogTarget(Info, gc) lt;
 233     LogStream ls(lt);
 234     heap->connection_matrix()->print_on(&ls);
 235   }
 236 }
 237 
 238 void ShenandoahMarkCompact::phase1_mark_heap() {
 239   GCTraceTime(Info, gc, phases) time("Phase 1: Mark live objects", _gc_timer);
 240   ShenandoahGCPhase mark_phase(ShenandoahPhaseTimings::full_gc_mark);
 241 
 242   ShenandoahHeap* heap = ShenandoahHeap::heap();
 243 
 244   ShenandoahConcurrentMark* cm = heap->concurrentMark();
 245 
 246   // Do not trust heuristics, because this can be our last resort collection.
 247   // Only ignore processing references and class unloading if explicitly disabled.


< prev index next >