< prev index next >

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

Print this page

 88   _gc_par_phases[ScanHR] = new WorkerDataArray<double>("ScanHR", "Scan Heap Roots (ms):", max_gc_threads);
 89   _gc_par_phases[OptScanHR] = new WorkerDataArray<double>("OptScanHR", "Optional Scan Heap Roots (ms):", max_gc_threads);
 90   _gc_par_phases[CodeRoots] = new WorkerDataArray<double>("CodeRoots", "Code Root Scan (ms):", max_gc_threads);
 91   _gc_par_phases[OptCodeRoots] = new WorkerDataArray<double>("OptCodeRoots", "Optional Code Root Scan (ms):", max_gc_threads);
 92   _gc_par_phases[ObjCopy] = new WorkerDataArray<double>("ObjCopy", "Object Copy (ms):", max_gc_threads);
 93   _gc_par_phases[OptObjCopy] = new WorkerDataArray<double>("OptObjCopy", "Optional Object Copy (ms):", max_gc_threads);
 94   _gc_par_phases[Termination] = new WorkerDataArray<double>("Termination", "Termination (ms):", max_gc_threads);
 95   _gc_par_phases[OptTermination] = new WorkerDataArray<double>("OptTermination", "Optional Termination (ms):", max_gc_threads);
 96   _gc_par_phases[GCWorkerTotal] = new WorkerDataArray<double>("GCWorkerTotal", "GC Worker Total (ms):", max_gc_threads);
 97   _gc_par_phases[GCWorkerEnd] = new WorkerDataArray<double>("GCWorkerEnd", "GC Worker End (ms):", max_gc_threads);
 98   _gc_par_phases[Other] = new WorkerDataArray<double>("Other", "GC Worker Other (ms):", max_gc_threads);
 99   _gc_par_phases[MergePSS] = new WorkerDataArray<double>("MergePSS", "Merge Per-Thread State (ms):", max_gc_threads);
100   _gc_par_phases[RestoreEvacuationFailedRegions] = new WorkerDataArray<double>("RestoreEvacuationFailedRegions", "Restore Evacuation Failed Regions (ms):", max_gc_threads);
101   _gc_par_phases[RemoveSelfForwards] = new WorkerDataArray<double>("RemoveSelfForwards", "Remove Self Forwards (ms):", max_gc_threads);
102   _gc_par_phases[ClearCardTable] = new WorkerDataArray<double>("ClearLoggedCards", "Clear Logged Cards (ms):", max_gc_threads);
103   _gc_par_phases[RecalculateUsed] = new WorkerDataArray<double>("RecalculateUsed", "Recalculate Used Memory (ms):", max_gc_threads);
104 #if COMPILER2_OR_JVMCI
105   _gc_par_phases[UpdateDerivedPointers] = new WorkerDataArray<double>("UpdateDerivedPointers", "Update Derived Pointers (ms):", max_gc_threads);
106 #endif
107   _gc_par_phases[EagerlyReclaimHumongousObjects] = new WorkerDataArray<double>("EagerlyReclaimHumongousObjects", "Eagerly Reclaim Humongous Objects (ms):", max_gc_threads);
108   _gc_par_phases[RestorePreservedMarks] = new WorkerDataArray<double>("RestorePreservedMarks", "Restore Preserved Marks (ms):", max_gc_threads);
109   _gc_par_phases[ProcessEvacuationFailedRegions] = new WorkerDataArray<double>("ProcessEvacuationFailedRegions", "Process Evacuation Failed Regions (ms):", max_gc_threads);
110 
111   _gc_par_phases[ScanHR]->create_thread_work_items("Scanned Cards:", ScanHRScannedCards);
112   _gc_par_phases[ScanHR]->create_thread_work_items("Scanned Blocks:", ScanHRScannedBlocks);
113   _gc_par_phases[ScanHR]->create_thread_work_items("Claimed Chunks:", ScanHRClaimedChunks);
114   _gc_par_phases[ScanHR]->create_thread_work_items("Found Roots:", ScanHRFoundRoots);
115 
116   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Cards:", ScanHRScannedCards);
117   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Blocks:", ScanHRScannedBlocks);
118   _gc_par_phases[OptScanHR]->create_thread_work_items("Claimed Chunks:", ScanHRClaimedChunks);
119   _gc_par_phases[OptScanHR]->create_thread_work_items("Found Roots:", ScanHRFoundRoots);
120   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Refs:", ScanHRScannedOptRefs);
121   _gc_par_phases[OptScanHR]->create_thread_work_items("Used Memory:", ScanHRUsedMemory);
122 
123   _gc_par_phases[MergeLB]->create_thread_work_items("Dirty Cards:", MergeLBDirtyCards);
124   _gc_par_phases[MergeLB]->create_thread_work_items("Skipped Cards:", MergeLBSkippedCards);
125 
126   _gc_par_phases[CodeRoots]->create_thread_work_items("Scanned Nmethods:", CodeRootsScannedNMethods);
127 
128   _gc_par_phases[OptCodeRoots]->create_thread_work_items("Scanned Nmethods:", CodeRootsScannedNMethods);

495 
496   debug_time("NMethod List Cleanup", _cur_collection_nmethod_list_cleanup_time_ms);
497 
498   debug_time_for_reference("Reference Processing", _cur_ref_proc_time_ms);
499   _ref_phase_times.print_all_references(2, false);
500   _weak_phase_times.log_total(2);
501   _weak_phase_times.log_subtotals(3);
502 
503   debug_time("Post Evacuate Cleanup 1", _cur_post_evacuate_cleanup_1_time_ms);
504   debug_phase(_gc_par_phases[MergePSS], 1);
505   debug_phase(_gc_par_phases[ClearCardTable], 1);
506   debug_phase(_gc_par_phases[RecalculateUsed], 1);
507   if (evacuation_failed) {
508     debug_phase(_gc_par_phases[RestoreEvacuationFailedRegions], 1);
509     debug_phase(_gc_par_phases[RemoveSelfForwards], 2);
510   }
511 
512   debug_time("Post Evacuate Cleanup 2", _cur_post_evacuate_cleanup_2_time_ms);
513   if (evacuation_failed) {
514     debug_phase(_gc_par_phases[RecalculateUsed], 1);
515     debug_phase(_gc_par_phases[RestorePreservedMarks], 1);
516     debug_phase(_gc_par_phases[ProcessEvacuationFailedRegions], 1);
517   }
518 #if COMPILER2_OR_JVMCI
519   debug_phase(_gc_par_phases[UpdateDerivedPointers], 1);
520 #endif
521   debug_phase(_gc_par_phases[EagerlyReclaimHumongousObjects], 1);
522 
523   if (G1CollectedHeap::heap()->should_sample_collection_set_candidates()) {
524     debug_phase(_gc_par_phases[SampleCollectionSetCandidates], 1);
525   }
526   debug_phase(_gc_par_phases[RedirtyCards], 1);
527   if (UseTLAB && ResizeTLAB) {
528     debug_phase(_gc_par_phases[ResizeThreadLABs], 1);
529   }
530   debug_phase(_gc_par_phases[FreeCollectionSet], 1);
531   trace_phase(_gc_par_phases[YoungFreeCSet], true, 1);
532   trace_phase(_gc_par_phases[NonYoungFreeCSet], true, 1);
533 
534   trace_time("Serial Free Collection Set", _recorded_serial_free_cset_time_ms);
535 

 88   _gc_par_phases[ScanHR] = new WorkerDataArray<double>("ScanHR", "Scan Heap Roots (ms):", max_gc_threads);
 89   _gc_par_phases[OptScanHR] = new WorkerDataArray<double>("OptScanHR", "Optional Scan Heap Roots (ms):", max_gc_threads);
 90   _gc_par_phases[CodeRoots] = new WorkerDataArray<double>("CodeRoots", "Code Root Scan (ms):", max_gc_threads);
 91   _gc_par_phases[OptCodeRoots] = new WorkerDataArray<double>("OptCodeRoots", "Optional Code Root Scan (ms):", max_gc_threads);
 92   _gc_par_phases[ObjCopy] = new WorkerDataArray<double>("ObjCopy", "Object Copy (ms):", max_gc_threads);
 93   _gc_par_phases[OptObjCopy] = new WorkerDataArray<double>("OptObjCopy", "Optional Object Copy (ms):", max_gc_threads);
 94   _gc_par_phases[Termination] = new WorkerDataArray<double>("Termination", "Termination (ms):", max_gc_threads);
 95   _gc_par_phases[OptTermination] = new WorkerDataArray<double>("OptTermination", "Optional Termination (ms):", max_gc_threads);
 96   _gc_par_phases[GCWorkerTotal] = new WorkerDataArray<double>("GCWorkerTotal", "GC Worker Total (ms):", max_gc_threads);
 97   _gc_par_phases[GCWorkerEnd] = new WorkerDataArray<double>("GCWorkerEnd", "GC Worker End (ms):", max_gc_threads);
 98   _gc_par_phases[Other] = new WorkerDataArray<double>("Other", "GC Worker Other (ms):", max_gc_threads);
 99   _gc_par_phases[MergePSS] = new WorkerDataArray<double>("MergePSS", "Merge Per-Thread State (ms):", max_gc_threads);
100   _gc_par_phases[RestoreEvacuationFailedRegions] = new WorkerDataArray<double>("RestoreEvacuationFailedRegions", "Restore Evacuation Failed Regions (ms):", max_gc_threads);
101   _gc_par_phases[RemoveSelfForwards] = new WorkerDataArray<double>("RemoveSelfForwards", "Remove Self Forwards (ms):", max_gc_threads);
102   _gc_par_phases[ClearCardTable] = new WorkerDataArray<double>("ClearLoggedCards", "Clear Logged Cards (ms):", max_gc_threads);
103   _gc_par_phases[RecalculateUsed] = new WorkerDataArray<double>("RecalculateUsed", "Recalculate Used Memory (ms):", max_gc_threads);
104 #if COMPILER2_OR_JVMCI
105   _gc_par_phases[UpdateDerivedPointers] = new WorkerDataArray<double>("UpdateDerivedPointers", "Update Derived Pointers (ms):", max_gc_threads);
106 #endif
107   _gc_par_phases[EagerlyReclaimHumongousObjects] = new WorkerDataArray<double>("EagerlyReclaimHumongousObjects", "Eagerly Reclaim Humongous Objects (ms):", max_gc_threads);

108   _gc_par_phases[ProcessEvacuationFailedRegions] = new WorkerDataArray<double>("ProcessEvacuationFailedRegions", "Process Evacuation Failed Regions (ms):", max_gc_threads);
109 
110   _gc_par_phases[ScanHR]->create_thread_work_items("Scanned Cards:", ScanHRScannedCards);
111   _gc_par_phases[ScanHR]->create_thread_work_items("Scanned Blocks:", ScanHRScannedBlocks);
112   _gc_par_phases[ScanHR]->create_thread_work_items("Claimed Chunks:", ScanHRClaimedChunks);
113   _gc_par_phases[ScanHR]->create_thread_work_items("Found Roots:", ScanHRFoundRoots);
114 
115   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Cards:", ScanHRScannedCards);
116   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Blocks:", ScanHRScannedBlocks);
117   _gc_par_phases[OptScanHR]->create_thread_work_items("Claimed Chunks:", ScanHRClaimedChunks);
118   _gc_par_phases[OptScanHR]->create_thread_work_items("Found Roots:", ScanHRFoundRoots);
119   _gc_par_phases[OptScanHR]->create_thread_work_items("Scanned Refs:", ScanHRScannedOptRefs);
120   _gc_par_phases[OptScanHR]->create_thread_work_items("Used Memory:", ScanHRUsedMemory);
121 
122   _gc_par_phases[MergeLB]->create_thread_work_items("Dirty Cards:", MergeLBDirtyCards);
123   _gc_par_phases[MergeLB]->create_thread_work_items("Skipped Cards:", MergeLBSkippedCards);
124 
125   _gc_par_phases[CodeRoots]->create_thread_work_items("Scanned Nmethods:", CodeRootsScannedNMethods);
126 
127   _gc_par_phases[OptCodeRoots]->create_thread_work_items("Scanned Nmethods:", CodeRootsScannedNMethods);

494 
495   debug_time("NMethod List Cleanup", _cur_collection_nmethod_list_cleanup_time_ms);
496 
497   debug_time_for_reference("Reference Processing", _cur_ref_proc_time_ms);
498   _ref_phase_times.print_all_references(2, false);
499   _weak_phase_times.log_total(2);
500   _weak_phase_times.log_subtotals(3);
501 
502   debug_time("Post Evacuate Cleanup 1", _cur_post_evacuate_cleanup_1_time_ms);
503   debug_phase(_gc_par_phases[MergePSS], 1);
504   debug_phase(_gc_par_phases[ClearCardTable], 1);
505   debug_phase(_gc_par_phases[RecalculateUsed], 1);
506   if (evacuation_failed) {
507     debug_phase(_gc_par_phases[RestoreEvacuationFailedRegions], 1);
508     debug_phase(_gc_par_phases[RemoveSelfForwards], 2);
509   }
510 
511   debug_time("Post Evacuate Cleanup 2", _cur_post_evacuate_cleanup_2_time_ms);
512   if (evacuation_failed) {
513     debug_phase(_gc_par_phases[RecalculateUsed], 1);

514     debug_phase(_gc_par_phases[ProcessEvacuationFailedRegions], 1);
515   }
516 #if COMPILER2_OR_JVMCI
517   debug_phase(_gc_par_phases[UpdateDerivedPointers], 1);
518 #endif
519   debug_phase(_gc_par_phases[EagerlyReclaimHumongousObjects], 1);
520 
521   if (G1CollectedHeap::heap()->should_sample_collection_set_candidates()) {
522     debug_phase(_gc_par_phases[SampleCollectionSetCandidates], 1);
523   }
524   debug_phase(_gc_par_phases[RedirtyCards], 1);
525   if (UseTLAB && ResizeTLAB) {
526     debug_phase(_gc_par_phases[ResizeThreadLABs], 1);
527   }
528   debug_phase(_gc_par_phases[FreeCollectionSet], 1);
529   trace_phase(_gc_par_phases[YoungFreeCSet], true, 1);
530   trace_phase(_gc_par_phases[NonYoungFreeCSet], true, 1);
531 
532   trace_time("Serial Free Collection Set", _recorded_serial_free_cset_time_ms);
533 
< prev index next >