161 NumberSeq* _all_mod_union_times_ms;
162
163 int _aux_num;
164 NumberSeq* _all_aux_times_ms;
165 double* _cur_aux_start_times_ms;
166 double* _cur_aux_times_ms;
167 bool* _cur_aux_times_set;
168
169 double* _par_last_gc_worker_start_times_ms;
170 double* _par_last_ext_root_scan_times_ms;
171 double* _par_last_mark_stack_scan_times_ms;
172 double* _par_last_update_rs_times_ms;
173 double* _par_last_update_rs_processed_buffers;
174 double* _par_last_scan_rs_times_ms;
175 double* _par_last_obj_copy_times_ms;
176 double* _par_last_termination_times_ms;
177 double* _par_last_termination_attempts;
178 double* _par_last_gc_worker_end_times_ms;
179 double* _par_last_gc_worker_times_ms;
180
181 // indicates that we are in young GC mode
182 bool _in_young_gc_mode;
183
184 // indicates whether we are in full young or partially young GC mode
185 bool _full_young_gcs;
186
187 // if true, then it tries to dynamically adjust the length of the
188 // young list
189 bool _adaptive_young_list_length;
190 size_t _young_list_min_length;
191 size_t _young_list_target_length;
192 size_t _young_list_fixed_length;
193
194 // The max number of regions we can extend the eden by while the GC
195 // locker is active. This should be >= _young_list_target_length;
196 size_t _young_list_max_length;
197
198 size_t _young_cset_length;
199 bool _last_young_gc_full;
200
201 unsigned _full_young_pause_num;
202 unsigned _partial_young_pause_num;
203
1100
1101 bool is_young_list_full() {
1102 size_t young_list_length = _g1->young_list()->length();
1103 size_t young_list_target_length = _young_list_target_length;
1104 if (G1FixedEdenSize) {
1105 young_list_target_length -= _max_survivor_regions;
1106 }
1107 return young_list_length >= young_list_target_length;
1108 }
1109
1110 bool can_expand_young_list() {
1111 size_t young_list_length = _g1->young_list()->length();
1112 size_t young_list_max_length = _young_list_max_length;
1113 if (G1FixedEdenSize) {
1114 young_list_max_length -= _max_survivor_regions;
1115 }
1116 return young_list_length < young_list_max_length;
1117 }
1118
1119 void update_region_num(bool young);
1120
1121 bool in_young_gc_mode() {
1122 return _in_young_gc_mode;
1123 }
1124 void set_in_young_gc_mode(bool in_young_gc_mode) {
1125 _in_young_gc_mode = in_young_gc_mode;
1126 }
1127
1128 bool full_young_gcs() {
1129 return _full_young_gcs;
1130 }
1131 void set_full_young_gcs(bool full_young_gcs) {
1132 _full_young_gcs = full_young_gcs;
1133 }
1134
1135 bool adaptive_young_list_length() {
1136 return _adaptive_young_list_length;
1137 }
1138 void set_adaptive_young_list_length(bool adaptive_young_list_length) {
1139 _adaptive_young_list_length = adaptive_young_list_length;
1140 }
1141
1142 inline double get_gc_eff_factor() {
1143 double ratio = _known_garbage_ratio;
1144
1145 double square = ratio * ratio;
1146 // square = square * square;
|
161 NumberSeq* _all_mod_union_times_ms;
162
163 int _aux_num;
164 NumberSeq* _all_aux_times_ms;
165 double* _cur_aux_start_times_ms;
166 double* _cur_aux_times_ms;
167 bool* _cur_aux_times_set;
168
169 double* _par_last_gc_worker_start_times_ms;
170 double* _par_last_ext_root_scan_times_ms;
171 double* _par_last_mark_stack_scan_times_ms;
172 double* _par_last_update_rs_times_ms;
173 double* _par_last_update_rs_processed_buffers;
174 double* _par_last_scan_rs_times_ms;
175 double* _par_last_obj_copy_times_ms;
176 double* _par_last_termination_times_ms;
177 double* _par_last_termination_attempts;
178 double* _par_last_gc_worker_end_times_ms;
179 double* _par_last_gc_worker_times_ms;
180
181 // indicates whether we are in full young or partially young GC mode
182 bool _full_young_gcs;
183
184 // if true, then it tries to dynamically adjust the length of the
185 // young list
186 bool _adaptive_young_list_length;
187 size_t _young_list_min_length;
188 size_t _young_list_target_length;
189 size_t _young_list_fixed_length;
190
191 // The max number of regions we can extend the eden by while the GC
192 // locker is active. This should be >= _young_list_target_length;
193 size_t _young_list_max_length;
194
195 size_t _young_cset_length;
196 bool _last_young_gc_full;
197
198 unsigned _full_young_pause_num;
199 unsigned _partial_young_pause_num;
200
1097
1098 bool is_young_list_full() {
1099 size_t young_list_length = _g1->young_list()->length();
1100 size_t young_list_target_length = _young_list_target_length;
1101 if (G1FixedEdenSize) {
1102 young_list_target_length -= _max_survivor_regions;
1103 }
1104 return young_list_length >= young_list_target_length;
1105 }
1106
1107 bool can_expand_young_list() {
1108 size_t young_list_length = _g1->young_list()->length();
1109 size_t young_list_max_length = _young_list_max_length;
1110 if (G1FixedEdenSize) {
1111 young_list_max_length -= _max_survivor_regions;
1112 }
1113 return young_list_length < young_list_max_length;
1114 }
1115
1116 void update_region_num(bool young);
1117
1118 bool full_young_gcs() {
1119 return _full_young_gcs;
1120 }
1121 void set_full_young_gcs(bool full_young_gcs) {
1122 _full_young_gcs = full_young_gcs;
1123 }
1124
1125 bool adaptive_young_list_length() {
1126 return _adaptive_young_list_length;
1127 }
1128 void set_adaptive_young_list_length(bool adaptive_young_list_length) {
1129 _adaptive_young_list_length = adaptive_young_list_length;
1130 }
1131
1132 inline double get_gc_eff_factor() {
1133 double ratio = _known_garbage_ratio;
1134
1135 double square = ratio * ratio;
1136 // square = square * square;
|