< prev index next >

src/hotspot/share/gc/parallel/psMarkSweep.cpp

Print this page




 237     // input to soft ref clearing policy at the next gc.
 238     Universe::update_heap_info_at_gc();
 239 
 240     survivors_empty = young_gen->from_space()->is_empty() &&
 241                       young_gen->to_space()->is_empty();
 242     young_gen_empty = eden_empty && survivors_empty;
 243 
 244     PSCardTable* card_table = heap->card_table();
 245     MemRegion old_mr = heap->old_gen()->reserved();
 246     if (young_gen_empty) {
 247       card_table->clear(MemRegion(old_mr.start(), old_mr.end()));
 248     } else {
 249       card_table->invalidate(MemRegion(old_mr.start(), old_mr.end()));
 250     }
 251 
 252     // Delete metaspaces for unloaded class loaders and clean up loader_data graph
 253     ClassLoaderDataGraph::purge();
 254     MetaspaceUtils::verify_metrics();
 255 
 256     BiasedLocking::restore_marks();
 257     heap->prune_nmethods();
 258     JvmtiExport::gc_epilogue();
 259 
 260 #if COMPILER2_OR_JVMCI
 261     DerivedPointerTable::update_pointers();
 262 #endif
 263 
 264     assert(!ref_processor()->discovery_enabled(), "Should have been disabled earlier");
 265 
 266     // Update time of last GC
 267     reset_millis_since_last_gc();
 268 
 269     // Let the size policy know we're done
 270     size_policy->major_collection_end(old_gen->used_in_bytes(), gc_cause);
 271 
 272     if (UseAdaptiveSizePolicy) {
 273 
 274      log_debug(gc, ergo)("AdaptiveSizeStart: collection: %d ", heap->total_collections());
 275      log_trace(gc, ergo)("old_gen_capacity: " SIZE_FORMAT " young_gen_capacity: " SIZE_FORMAT,
 276                          old_gen->capacity_in_bytes(), young_gen->capacity_in_bytes());
 277 




 237     // input to soft ref clearing policy at the next gc.
 238     Universe::update_heap_info_at_gc();
 239 
 240     survivors_empty = young_gen->from_space()->is_empty() &&
 241                       young_gen->to_space()->is_empty();
 242     young_gen_empty = eden_empty && survivors_empty;
 243 
 244     PSCardTable* card_table = heap->card_table();
 245     MemRegion old_mr = heap->old_gen()->reserved();
 246     if (young_gen_empty) {
 247       card_table->clear(MemRegion(old_mr.start(), old_mr.end()));
 248     } else {
 249       card_table->invalidate(MemRegion(old_mr.start(), old_mr.end()));
 250     }
 251 
 252     // Delete metaspaces for unloaded class loaders and clean up loader_data graph
 253     ClassLoaderDataGraph::purge();
 254     MetaspaceUtils::verify_metrics();
 255 
 256     BiasedLocking::restore_marks();
 257     heap->prune_scavengable_nmethods();
 258     JvmtiExport::gc_epilogue();
 259 
 260 #if COMPILER2_OR_JVMCI
 261     DerivedPointerTable::update_pointers();
 262 #endif
 263 
 264     assert(!ref_processor()->discovery_enabled(), "Should have been disabled earlier");
 265 
 266     // Update time of last GC
 267     reset_millis_since_last_gc();
 268 
 269     // Let the size policy know we're done
 270     size_policy->major_collection_end(old_gen->used_in_bytes(), gc_cause);
 271 
 272     if (UseAdaptiveSizePolicy) {
 273 
 274      log_debug(gc, ergo)("AdaptiveSizeStart: collection: %d ", heap->total_collections());
 275      log_trace(gc, ergo)("old_gen_capacity: " SIZE_FORMAT " young_gen_capacity: " SIZE_FORMAT,
 276                          old_gen->capacity_in_bytes(), young_gen->capacity_in_bytes());
 277 


< prev index next >