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

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


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





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


1462     } else {
1463       print_stats(1, "Update RS", update_rs_time);
1464       print_stats(2, "Processed Buffers",
1465                   (int)update_rs_processed_buffers);
1466       print_stats(1, "Ext Root Scanning", ext_root_scan_time);
1467       print_stats(1, "Mark Stack Scanning", mark_stack_scan_time);
1468       print_stats(1, "Scan RS", scan_rs_time);
1469       print_stats(1, "Object Copying", obj_copy_time);
1470     }
1471 #ifndef PRODUCT
1472     print_stats(1, "Cur Clear CC", _cur_clear_cc_time_ms);
1473     print_stats(1, "Cum Clear CC", _cum_clear_cc_time_ms);
1474     print_stats(1, "Min Clear CC", _min_clear_cc_time_ms);
1475     print_stats(1, "Max Clear CC", _max_clear_cc_time_ms);
1476     if (_num_cc_clears > 0) {
1477       print_stats(1, "Avg Clear CC", _cum_clear_cc_time_ms / ((double)_num_cc_clears));
1478     }
1479 #endif
1480     print_stats(1, "Other", other_time_ms);
1481     print_stats(2, "Choose CSet", _recorded_young_cset_choice_time_ms);


1482 
1483     for (int i = 0; i < _aux_num; ++i) {
1484       if (_cur_aux_times_set[i]) {
1485         char buffer[96];
1486         sprintf(buffer, "Aux%d", i);
1487         print_stats(1, buffer, _cur_aux_times_ms[i]);
1488       }
1489     }
1490   }
1491 
1492   _all_pause_times_ms->add(elapsed_ms);
1493   if (update_stats) {
1494     summary->record_total_time_ms(elapsed_ms);
1495     summary->record_other_time_ms(other_time_ms);
1496   }
1497   for (int i = 0; i < _aux_num; ++i)
1498     if (_cur_aux_times_set[i])
1499       _all_aux_times_ms[i].add(_cur_aux_times_ms[i]);
1500 
1501   // Reset marks-between-pauses counter.




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

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


1466     } else {
1467       print_stats(1, "Update RS", update_rs_time);
1468       print_stats(2, "Processed Buffers",
1469                   (int)update_rs_processed_buffers);
1470       print_stats(1, "Ext Root Scanning", ext_root_scan_time);
1471       print_stats(1, "Mark Stack Scanning", mark_stack_scan_time);
1472       print_stats(1, "Scan RS", scan_rs_time);
1473       print_stats(1, "Object Copying", obj_copy_time);
1474     }
1475 #ifndef PRODUCT
1476     print_stats(1, "Cur Clear CC", _cur_clear_cc_time_ms);
1477     print_stats(1, "Cum Clear CC", _cum_clear_cc_time_ms);
1478     print_stats(1, "Min Clear CC", _min_clear_cc_time_ms);
1479     print_stats(1, "Max Clear CC", _max_clear_cc_time_ms);
1480     if (_num_cc_clears > 0) {
1481       print_stats(1, "Avg Clear CC", _cum_clear_cc_time_ms / ((double)_num_cc_clears));
1482     }
1483 #endif
1484     print_stats(1, "Other", other_time_ms);
1485     print_stats(2, "Choose CSet", _recorded_young_cset_choice_time_ms);
1486     print_stats(2, "Ref Proc", _cur_ref_proc_time_ms);
1487     print_stats(2, "Ref Enq", _cur_ref_enq_time_ms);
1488 
1489     for (int i = 0; i < _aux_num; ++i) {
1490       if (_cur_aux_times_set[i]) {
1491         char buffer[96];
1492         sprintf(buffer, "Aux%d", i);
1493         print_stats(1, buffer, _cur_aux_times_ms[i]);
1494       }
1495     }
1496   }
1497 
1498   _all_pause_times_ms->add(elapsed_ms);
1499   if (update_stats) {
1500     summary->record_total_time_ms(elapsed_ms);
1501     summary->record_other_time_ms(other_time_ms);
1502   }
1503   for (int i = 0; i < _aux_num; ++i)
1504     if (_cur_aux_times_set[i])
1505       _all_aux_times_ms[i].add(_cur_aux_times_ms[i]);
1506 
1507   // Reset marks-between-pauses counter.