4515 } else {
4516 g1_policy()->phase_times()->record_ref_enq_time(0);
4517 }
4518
4519 _allocator->release_gc_alloc_regions(evacuation_info);
4520
4521 merge_per_thread_state_info(per_thread_states);
4522
4523 // Reset and re-enable the hot card cache.
4524 // Note the counts for the cards in the regions in the
4525 // collection set are reset when the collection set is freed.
4526 _hot_card_cache->reset_hot_cache();
4527 _hot_card_cache->set_use_cache(true);
4528
4529 purge_code_root_memory();
4530
4531 redirty_logged_cards();
4532 #if defined(COMPILER2) || INCLUDE_JVMCI
4533 double start = os::elapsedTime();
4534 DerivedPointerTable::update_pointers();
4535 g1_policy()->phase_times()->record_dpt_update_time((os::elapsedTime() - start) * 1000.0);
4536 #endif
4537 g1_policy()->print_age_table();
4538 }
4539
4540 void G1CollectedHeap::record_obj_copy_mem_stats() {
4541 g1_policy()->add_bytes_allocated_in_old_since_last_gc(_old_evac_stats.allocated() * HeapWordSize);
4542
4543 _gc_tracer_stw->report_evacuation_statistics(create_g1_evac_summary(&_survivor_evac_stats),
4544 create_g1_evac_summary(&_old_evac_stats));
4545 }
4546
4547 void G1CollectedHeap::free_region(HeapRegion* hr,
4548 FreeRegionList* free_list,
4549 bool skip_remset,
4550 bool skip_hot_card_cache,
4551 bool locked) {
4552 assert(!hr->is_free(), "the region should not be free");
4553 assert(!hr->is_empty(), "the region should not be empty");
4554 assert(_hrm.is_available(hr->hrm_index()), "region should be committed");
4555 assert(free_list != NULL, "pre-condition");
|
4515 } else {
4516 g1_policy()->phase_times()->record_ref_enq_time(0);
4517 }
4518
4519 _allocator->release_gc_alloc_regions(evacuation_info);
4520
4521 merge_per_thread_state_info(per_thread_states);
4522
4523 // Reset and re-enable the hot card cache.
4524 // Note the counts for the cards in the regions in the
4525 // collection set are reset when the collection set is freed.
4526 _hot_card_cache->reset_hot_cache();
4527 _hot_card_cache->set_use_cache(true);
4528
4529 purge_code_root_memory();
4530
4531 redirty_logged_cards();
4532 #if defined(COMPILER2) || INCLUDE_JVMCI
4533 double start = os::elapsedTime();
4534 DerivedPointerTable::update_pointers();
4535 g1_policy()->phase_times()->record_derived_pointer_table_update_time((os::elapsedTime() - start) * 1000.0);
4536 #endif
4537 g1_policy()->print_age_table();
4538 }
4539
4540 void G1CollectedHeap::record_obj_copy_mem_stats() {
4541 g1_policy()->add_bytes_allocated_in_old_since_last_gc(_old_evac_stats.allocated() * HeapWordSize);
4542
4543 _gc_tracer_stw->report_evacuation_statistics(create_g1_evac_summary(&_survivor_evac_stats),
4544 create_g1_evac_summary(&_old_evac_stats));
4545 }
4546
4547 void G1CollectedHeap::free_region(HeapRegion* hr,
4548 FreeRegionList* free_list,
4549 bool skip_remset,
4550 bool skip_hot_card_cache,
4551 bool locked) {
4552 assert(!hr->is_free(), "the region should not be free");
4553 assert(!hr->is_empty(), "the region should not be empty");
4554 assert(_hrm.is_available(hr->hrm_index()), "region should be committed");
4555 assert(free_list != NULL, "pre-condition");
|