< 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 >