< prev index next >
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
Print this page
*** 5646,5661 ****
// elapsed time before closing the scope so that time
// taken for the SRS destructor is NOT included in the
// reported parallel time.
}
double par_time_ms = (end_par_time_sec - start_par_time_sec) * 1000.0;
! g1_policy()->phase_times()->record_par_time(par_time_ms);
double code_root_fixup_time_ms =
(os::elapsedTime() - end_par_time_sec) * 1000.0;
! g1_policy()->phase_times()->record_code_root_fixup_time(code_root_fixup_time_ms);
set_par_threads(0);
// Process any discovered reference objects - we have
// to do this _before_ we retire the GC alloc regions
--- 5646,5663 ----
// elapsed time before closing the scope so that time
// taken for the SRS destructor is NOT included in the
// reported parallel time.
}
+ G1GCPhaseTimes* phase_times = g1_policy()->phase_times();
+
double par_time_ms = (end_par_time_sec - start_par_time_sec) * 1000.0;
! phase_times->record_par_time(par_time_ms);
double code_root_fixup_time_ms =
(os::elapsedTime() - end_par_time_sec) * 1000.0;
! phase_times->record_code_root_fixup_time(code_root_fixup_time_ms);
set_par_threads(0);
// Process any discovered reference objects - we have
// to do this _before_ we retire the GC alloc regions
*** 5663,5675 ****
// objects (and their reachable sub-graphs) that were
// not copied during the pause.
process_discovered_references(n_workers);
if (G1StringDedup::is_enabled()) {
G1STWIsAliveClosure is_alive(this);
G1KeepAliveClosure keep_alive(this);
! G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive);
}
_allocator->release_gc_alloc_regions(n_workers, evacuation_info);
g1_rem_set()->cleanup_after_oops_into_collection_set_do();
--- 5665,5682 ----
// objects (and their reachable sub-graphs) that were
// not copied during the pause.
process_discovered_references(n_workers);
if (G1StringDedup::is_enabled()) {
+ double fixup_start = os::elapsedTime();
+
G1STWIsAliveClosure is_alive(this);
G1KeepAliveClosure keep_alive(this);
! G1StringDedup::unlink_or_oops_do(&is_alive, &keep_alive, true, phase_times);
!
! double fixup_time_ms = (os::elapsedTime() - fixup_start) * 1000.0;
! phase_times->record_string_dedup_fixup_time(fixup_time_ms);
}
_allocator->release_gc_alloc_regions(n_workers, evacuation_info);
g1_rem_set()->cleanup_after_oops_into_collection_set_do();
< prev index next >