src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp

Print this page
rev 2591 : [mq]: g1-reference-processing


 133 };
 134 
 135 G1CollectorPolicy::G1CollectorPolicy() :
 136   _parallel_gc_threads(G1CollectedHeap::use_parallel_gc_threads()
 137                         ? ParallelGCThreads : 1),
 138 
 139   _n_pauses(0),
 140   _recent_rs_scan_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 141   _recent_pause_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 142   _recent_rs_sizes(new TruncatedSeq(NumPrevPausesForHeuristics)),
 143   _recent_gc_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 144   _all_pause_times_ms(new NumberSeq()),
 145   _stop_world_start(0.0),
 146   _all_stop_world_times_ms(new NumberSeq()),
 147   _all_yield_times_ms(new NumberSeq()),
 148 
 149   _all_mod_union_times_ms(new NumberSeq()),
 150 
 151   _summary(new Summary()),
 152 
 153 #ifndef PRODUCT
 154   _cur_clear_ct_time_ms(0.0),





 155   _min_clear_cc_time_ms(-1.0),
 156   _max_clear_cc_time_ms(-1.0),
 157   _cur_clear_cc_time_ms(0.0),
 158   _cum_clear_cc_time_ms(0.0),
 159   _num_cc_clears(0L),
 160 #endif
 161 
 162   _region_num_young(0),
 163   _region_num_tenured(0),
 164   _prev_region_num_young(0),
 165   _prev_region_num_tenured(0),
 166 
 167   _aux_num(10),
 168   _all_aux_times_ms(new NumberSeq[_aux_num]),
 169   _cur_aux_start_times_ms(new double[_aux_num]),
 170   _cur_aux_times_ms(new double[_aux_num]),
 171   _cur_aux_times_set(new bool[_aux_num]),
 172 
 173   _concurrent_mark_init_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 174   _concurrent_mark_remark_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),


1412     } else {
1413       print_stats(1, "Update RS", update_rs_time);
1414       print_stats(2, "Processed Buffers",
1415                   (int)update_rs_processed_buffers);
1416       print_stats(1, "Ext Root Scanning", ext_root_scan_time);
1417       print_stats(1, "Mark Stack Scanning", mark_stack_scan_time);
1418       print_stats(1, "Scan RS", scan_rs_time);
1419       print_stats(1, "Object Copying", obj_copy_time);
1420     }
1421 #ifndef PRODUCT
1422     print_stats(1, "Cur Clear CC", _cur_clear_cc_time_ms);
1423     print_stats(1, "Cum Clear CC", _cum_clear_cc_time_ms);
1424     print_stats(1, "Min Clear CC", _min_clear_cc_time_ms);
1425     print_stats(1, "Max Clear CC", _max_clear_cc_time_ms);
1426     if (_num_cc_clears > 0) {
1427       print_stats(1, "Avg Clear CC", _cum_clear_cc_time_ms / ((double)_num_cc_clears));
1428     }
1429 #endif
1430     print_stats(1, "Other", other_time_ms);
1431     print_stats(2, "Choose CSet", _recorded_young_cset_choice_time_ms);


1432 
1433     for (int i = 0; i < _aux_num; ++i) {
1434       if (_cur_aux_times_set[i]) {
1435         char buffer[96];
1436         sprintf(buffer, "Aux%d", i);
1437         print_stats(1, buffer, _cur_aux_times_ms[i]);
1438       }
1439     }
1440   }
1441 
1442   _all_pause_times_ms->add(elapsed_ms);
1443   if (update_stats) {
1444     summary->record_total_time_ms(elapsed_ms);
1445     summary->record_other_time_ms(other_time_ms);
1446   }
1447   for (int i = 0; i < _aux_num; ++i)
1448     if (_cur_aux_times_set[i])
1449       _all_aux_times_ms[i].add(_cur_aux_times_ms[i]);
1450 
1451   // Reset marks-between-pauses counter.




 133 };
 134 
 135 G1CollectorPolicy::G1CollectorPolicy() :
 136   _parallel_gc_threads(G1CollectedHeap::use_parallel_gc_threads()
 137                         ? ParallelGCThreads : 1),
 138 
 139   _n_pauses(0),
 140   _recent_rs_scan_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 141   _recent_pause_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 142   _recent_rs_sizes(new TruncatedSeq(NumPrevPausesForHeuristics)),
 143   _recent_gc_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 144   _all_pause_times_ms(new NumberSeq()),
 145   _stop_world_start(0.0),
 146   _all_stop_world_times_ms(new NumberSeq()),
 147   _all_yield_times_ms(new NumberSeq()),
 148 
 149   _all_mod_union_times_ms(new NumberSeq()),
 150 
 151   _summary(new Summary()),
 152 

 153   _cur_clear_ct_time_ms(0.0),
 154 
 155   _cur_ref_proc_time_ms(0.0),
 156   _cur_ref_enq_time_ms(0.0),
 157 
 158 #ifndef PRODUCT
 159   _min_clear_cc_time_ms(-1.0),
 160   _max_clear_cc_time_ms(-1.0),
 161   _cur_clear_cc_time_ms(0.0),
 162   _cum_clear_cc_time_ms(0.0),
 163   _num_cc_clears(0L),
 164 #endif
 165 
 166   _region_num_young(0),
 167   _region_num_tenured(0),
 168   _prev_region_num_young(0),
 169   _prev_region_num_tenured(0),
 170 
 171   _aux_num(10),
 172   _all_aux_times_ms(new NumberSeq[_aux_num]),
 173   _cur_aux_start_times_ms(new double[_aux_num]),
 174   _cur_aux_times_ms(new double[_aux_num]),
 175   _cur_aux_times_set(new bool[_aux_num]),
 176 
 177   _concurrent_mark_init_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
 178   _concurrent_mark_remark_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),


1416     } else {
1417       print_stats(1, "Update RS", update_rs_time);
1418       print_stats(2, "Processed Buffers",
1419                   (int)update_rs_processed_buffers);
1420       print_stats(1, "Ext Root Scanning", ext_root_scan_time);
1421       print_stats(1, "Mark Stack Scanning", mark_stack_scan_time);
1422       print_stats(1, "Scan RS", scan_rs_time);
1423       print_stats(1, "Object Copying", obj_copy_time);
1424     }
1425 #ifndef PRODUCT
1426     print_stats(1, "Cur Clear CC", _cur_clear_cc_time_ms);
1427     print_stats(1, "Cum Clear CC", _cum_clear_cc_time_ms);
1428     print_stats(1, "Min Clear CC", _min_clear_cc_time_ms);
1429     print_stats(1, "Max Clear CC", _max_clear_cc_time_ms);
1430     if (_num_cc_clears > 0) {
1431       print_stats(1, "Avg Clear CC", _cum_clear_cc_time_ms / ((double)_num_cc_clears));
1432     }
1433 #endif
1434     print_stats(1, "Other", other_time_ms);
1435     print_stats(2, "Choose CSet", _recorded_young_cset_choice_time_ms);
1436     print_stats(2, "Ref Proc", _cur_ref_proc_time_ms);
1437     print_stats(2, "Ref Enq", _cur_ref_enq_time_ms);
1438 
1439     for (int i = 0; i < _aux_num; ++i) {
1440       if (_cur_aux_times_set[i]) {
1441         char buffer[96];
1442         sprintf(buffer, "Aux%d", i);
1443         print_stats(1, buffer, _cur_aux_times_ms[i]);
1444       }
1445     }
1446   }
1447 
1448   _all_pause_times_ms->add(elapsed_ms);
1449   if (update_stats) {
1450     summary->record_total_time_ms(elapsed_ms);
1451     summary->record_other_time_ms(other_time_ms);
1452   }
1453   for (int i = 0; i < _aux_num; ++i)
1454     if (_cur_aux_times_set[i])
1455       _all_aux_times_ms[i].add(_cur_aux_times_ms[i]);
1456 
1457   // Reset marks-between-pauses counter.