< prev index next >

src/share/vm/gc/g1/g1GCPhaseTimes.cpp

Print this page
rev 13269 : 8183539: Remove G1RemSet::_into_cset_dirty_card_queue_set


  99     _gc_par_phases[StringDedupTableFixup] = NULL;
 100   }
 101 
 102   _gc_par_phases[RedirtyCards] = new WorkerDataArray<double>(max_gc_threads, "Parallel Redirty (ms):");
 103   _redirtied_cards = new WorkerDataArray<size_t>(max_gc_threads, "Redirtied Cards:");
 104   _gc_par_phases[RedirtyCards]->link_thread_work_items(_redirtied_cards);
 105 
 106   _gc_par_phases[YoungFreeCSet] = new WorkerDataArray<double>(max_gc_threads, "Young Free Collection Set (ms):");
 107   _gc_par_phases[NonYoungFreeCSet] = new WorkerDataArray<double>(max_gc_threads, "Non-Young Free Collection Set (ms):");
 108 
 109   _gc_par_phases[PreserveCMReferents] = new WorkerDataArray<double>(max_gc_threads, "Parallel Preserve CM Refs (ms):");
 110 
 111   reset();
 112 }
 113 
 114 void G1GCPhaseTimes::reset() {
 115   _cur_collection_par_time_ms = 0.0;
 116   _cur_collection_code_root_fixup_time_ms = 0.0;
 117   _cur_strong_code_root_purge_time_ms = 0.0;
 118   _cur_evac_fail_recalc_used = 0.0;
 119   _cur_evac_fail_restore_remsets = 0.0;
 120   _cur_evac_fail_remove_self_forwards = 0.0;
 121   _cur_string_dedup_fixup_time_ms = 0.0;
 122   _cur_prepare_tlab_time_ms = 0.0;
 123   _cur_resize_tlab_time_ms = 0.0;
 124   _cur_derived_pointer_table_update_time_ms = 0.0;
 125   _cur_clear_ct_time_ms = 0.0;
 126   _cur_expand_heap_time_ms = 0.0;
 127   _cur_ref_proc_time_ms = 0.0;
 128   _cur_ref_enq_time_ms = 0.0;
 129   _cur_collection_start_sec = 0.0;
 130   _root_region_scan_wait_time_ms = 0.0;
 131   _external_accounted_time_ms = 0.0;
 132   _recorded_clear_claimed_marks_time_ms = 0.0;
 133   _recorded_young_cset_choice_time_ms = 0.0;
 134   _recorded_non_young_cset_choice_time_ms = 0.0;
 135   _recorded_redirty_logged_cards_time_ms = 0.0;
 136   _recorded_preserve_cm_referents_time_ms = 0.0;
 137   _recorded_merge_pss_time_ms = 0.0;
 138   _recorded_start_new_cset_time_ms = 0.0;
 139   _recorded_total_free_cset_time_ms = 0.0;


 329   debug_phase(_gc_par_phases[UpdateRS]);
 330   if (G1HotCardCache::default_use_cache()) {
 331     trace_phase(_gc_par_phases[ScanHCC]);
 332   }
 333   debug_phase(_gc_par_phases[ScanRS]);
 334   debug_phase(_gc_par_phases[CodeRoots]);
 335 #if INCLUDE_AOT
 336   debug_phase(_gc_par_phases[AOTCodeRoots]);
 337 #endif
 338   debug_phase(_gc_par_phases[ObjCopy]);
 339   debug_phase(_gc_par_phases[Termination]);
 340   debug_phase(_gc_par_phases[Other]);
 341   debug_phase(_gc_par_phases[GCWorkerTotal]);
 342   trace_phase(_gc_par_phases[GCWorkerEnd], false);
 343 
 344   return sum_ms;
 345 }
 346 
 347 double G1GCPhaseTimes::print_post_evacuate_collection_set() const {
 348   const double evac_fail_handling = _cur_evac_fail_recalc_used +
 349                                     _cur_evac_fail_remove_self_forwards +
 350                                     _cur_evac_fail_restore_remsets;
 351   const double sum_ms = evac_fail_handling +
 352                         _cur_collection_code_root_fixup_time_ms +
 353                         _recorded_preserve_cm_referents_time_ms +
 354                         _cur_ref_proc_time_ms +
 355                         _cur_ref_enq_time_ms +
 356                         _cur_clear_ct_time_ms +
 357                         _recorded_merge_pss_time_ms +
 358                         _cur_strong_code_root_purge_time_ms +
 359                         _recorded_redirty_logged_cards_time_ms +
 360                         _recorded_total_free_cset_time_ms +
 361                         _cur_fast_reclaim_humongous_time_ms +
 362                         _cur_expand_heap_time_ms +
 363                         _cur_string_dedup_fixup_time_ms;
 364 
 365   info_time("Post Evacuate Collection Set", sum_ms);
 366 
 367   debug_time("Code Roots Fixup", _cur_collection_code_root_fixup_time_ms);
 368 
 369   debug_time("Preserve CM Refs", _recorded_preserve_cm_referents_time_ms);
 370   trace_phase(_gc_par_phases[PreserveCMReferents]);
 371 
 372   debug_time("Reference Processing", _cur_ref_proc_time_ms);
 373 
 374   if (G1StringDedup::is_enabled()) {
 375     debug_time("String Dedup Fixup", _cur_string_dedup_fixup_time_ms);
 376     debug_phase(_gc_par_phases[StringDedupQueueFixup]);
 377     debug_phase(_gc_par_phases[StringDedupTableFixup]);
 378   }
 379 
 380   debug_time("Clear Card Table", _cur_clear_ct_time_ms);
 381 
 382   if (G1CollectedHeap::heap()->evacuation_failed()) {
 383     debug_time("Evacuation Failure", evac_fail_handling);
 384     trace_time("Recalculate Used", _cur_evac_fail_recalc_used);
 385     trace_time("Remove Self Forwards",_cur_evac_fail_remove_self_forwards);
 386     trace_time("Restore RemSet", _cur_evac_fail_restore_remsets);
 387   }
 388 
 389   debug_time("Reference Enqueuing", _cur_ref_enq_time_ms);
 390 
 391   debug_time("Merge Per-Thread State", _recorded_merge_pss_time_ms);
 392   debug_time("Code Roots Purge", _cur_strong_code_root_purge_time_ms);
 393 
 394   debug_time("Redirty Cards", _recorded_redirty_logged_cards_time_ms);
 395   trace_phase(_gc_par_phases[RedirtyCards]);
 396 #if defined(COMPILER2) || INCLUDE_JVMCI
 397   debug_time("DerivedPointerTable Update", _cur_derived_pointer_table_update_time_ms);
 398 #endif
 399 
 400   debug_time("Free Collection Set", _recorded_total_free_cset_time_ms);
 401   trace_time("Free Collection Set Serial", _recorded_serial_free_cset_time_ms);
 402   trace_phase(_gc_par_phases[YoungFreeCSet]);
 403   trace_phase(_gc_par_phases[NonYoungFreeCSet]);
 404 
 405   if (G1EagerReclaimHumongousObjects) {
 406     debug_time("Humongous Reclaim", _cur_fast_reclaim_humongous_time_ms);




  99     _gc_par_phases[StringDedupTableFixup] = NULL;
 100   }
 101 
 102   _gc_par_phases[RedirtyCards] = new WorkerDataArray<double>(max_gc_threads, "Parallel Redirty (ms):");
 103   _redirtied_cards = new WorkerDataArray<size_t>(max_gc_threads, "Redirtied Cards:");
 104   _gc_par_phases[RedirtyCards]->link_thread_work_items(_redirtied_cards);
 105 
 106   _gc_par_phases[YoungFreeCSet] = new WorkerDataArray<double>(max_gc_threads, "Young Free Collection Set (ms):");
 107   _gc_par_phases[NonYoungFreeCSet] = new WorkerDataArray<double>(max_gc_threads, "Non-Young Free Collection Set (ms):");
 108 
 109   _gc_par_phases[PreserveCMReferents] = new WorkerDataArray<double>(max_gc_threads, "Parallel Preserve CM Refs (ms):");
 110 
 111   reset();
 112 }
 113 
 114 void G1GCPhaseTimes::reset() {
 115   _cur_collection_par_time_ms = 0.0;
 116   _cur_collection_code_root_fixup_time_ms = 0.0;
 117   _cur_strong_code_root_purge_time_ms = 0.0;
 118   _cur_evac_fail_recalc_used = 0.0;

 119   _cur_evac_fail_remove_self_forwards = 0.0;
 120   _cur_string_dedup_fixup_time_ms = 0.0;
 121   _cur_prepare_tlab_time_ms = 0.0;
 122   _cur_resize_tlab_time_ms = 0.0;
 123   _cur_derived_pointer_table_update_time_ms = 0.0;
 124   _cur_clear_ct_time_ms = 0.0;
 125   _cur_expand_heap_time_ms = 0.0;
 126   _cur_ref_proc_time_ms = 0.0;
 127   _cur_ref_enq_time_ms = 0.0;
 128   _cur_collection_start_sec = 0.0;
 129   _root_region_scan_wait_time_ms = 0.0;
 130   _external_accounted_time_ms = 0.0;
 131   _recorded_clear_claimed_marks_time_ms = 0.0;
 132   _recorded_young_cset_choice_time_ms = 0.0;
 133   _recorded_non_young_cset_choice_time_ms = 0.0;
 134   _recorded_redirty_logged_cards_time_ms = 0.0;
 135   _recorded_preserve_cm_referents_time_ms = 0.0;
 136   _recorded_merge_pss_time_ms = 0.0;
 137   _recorded_start_new_cset_time_ms = 0.0;
 138   _recorded_total_free_cset_time_ms = 0.0;


 328   debug_phase(_gc_par_phases[UpdateRS]);
 329   if (G1HotCardCache::default_use_cache()) {
 330     trace_phase(_gc_par_phases[ScanHCC]);
 331   }
 332   debug_phase(_gc_par_phases[ScanRS]);
 333   debug_phase(_gc_par_phases[CodeRoots]);
 334 #if INCLUDE_AOT
 335   debug_phase(_gc_par_phases[AOTCodeRoots]);
 336 #endif
 337   debug_phase(_gc_par_phases[ObjCopy]);
 338   debug_phase(_gc_par_phases[Termination]);
 339   debug_phase(_gc_par_phases[Other]);
 340   debug_phase(_gc_par_phases[GCWorkerTotal]);
 341   trace_phase(_gc_par_phases[GCWorkerEnd], false);
 342 
 343   return sum_ms;
 344 }
 345 
 346 double G1GCPhaseTimes::print_post_evacuate_collection_set() const {
 347   const double evac_fail_handling = _cur_evac_fail_recalc_used +
 348                                     _cur_evac_fail_remove_self_forwards;

 349   const double sum_ms = evac_fail_handling +
 350                         _cur_collection_code_root_fixup_time_ms +
 351                         _recorded_preserve_cm_referents_time_ms +
 352                         _cur_ref_proc_time_ms +
 353                         _cur_ref_enq_time_ms +
 354                         _cur_clear_ct_time_ms +
 355                         _recorded_merge_pss_time_ms +
 356                         _cur_strong_code_root_purge_time_ms +
 357                         _recorded_redirty_logged_cards_time_ms +
 358                         _recorded_total_free_cset_time_ms +
 359                         _cur_fast_reclaim_humongous_time_ms +
 360                         _cur_expand_heap_time_ms +
 361                         _cur_string_dedup_fixup_time_ms;
 362 
 363   info_time("Post Evacuate Collection Set", sum_ms);
 364 
 365   debug_time("Code Roots Fixup", _cur_collection_code_root_fixup_time_ms);
 366 
 367   debug_time("Preserve CM Refs", _recorded_preserve_cm_referents_time_ms);
 368   trace_phase(_gc_par_phases[PreserveCMReferents]);
 369 
 370   debug_time("Reference Processing", _cur_ref_proc_time_ms);
 371 
 372   if (G1StringDedup::is_enabled()) {
 373     debug_time("String Dedup Fixup", _cur_string_dedup_fixup_time_ms);
 374     debug_phase(_gc_par_phases[StringDedupQueueFixup]);
 375     debug_phase(_gc_par_phases[StringDedupTableFixup]);
 376   }
 377 
 378   debug_time("Clear Card Table", _cur_clear_ct_time_ms);
 379 
 380   if (G1CollectedHeap::heap()->evacuation_failed()) {
 381     debug_time("Evacuation Failure", evac_fail_handling);
 382     trace_time("Recalculate Used", _cur_evac_fail_recalc_used);
 383     trace_time("Remove Self Forwards",_cur_evac_fail_remove_self_forwards);

 384   }
 385 
 386   debug_time("Reference Enqueuing", _cur_ref_enq_time_ms);
 387 
 388   debug_time("Merge Per-Thread State", _recorded_merge_pss_time_ms);
 389   debug_time("Code Roots Purge", _cur_strong_code_root_purge_time_ms);
 390 
 391   debug_time("Redirty Cards", _recorded_redirty_logged_cards_time_ms);
 392   trace_phase(_gc_par_phases[RedirtyCards]);
 393 #if defined(COMPILER2) || INCLUDE_JVMCI
 394   debug_time("DerivedPointerTable Update", _cur_derived_pointer_table_update_time_ms);
 395 #endif
 396 
 397   debug_time("Free Collection Set", _recorded_total_free_cset_time_ms);
 398   trace_time("Free Collection Set Serial", _recorded_serial_free_cset_time_ms);
 399   trace_phase(_gc_par_phases[YoungFreeCSet]);
 400   trace_phase(_gc_par_phases[NonYoungFreeCSet]);
 401 
 402   if (G1EagerReclaimHumongousObjects) {
 403     debug_time("Humongous Reclaim", _cur_fast_reclaim_humongous_time_ms);


< prev index next >