112 private:
113 uint _active_gc_threads;
114 uint _max_gc_threads;
115
116 WorkerDataArray<double> _last_gc_worker_start_times_ms;
117 WorkerDataArray<double> _last_ext_root_scan_times_ms;
118 WorkerDataArray<double> _last_satb_filtering_times_ms;
119 WorkerDataArray<double> _last_update_rs_times_ms;
120 WorkerDataArray<int> _last_update_rs_processed_buffers;
121 WorkerDataArray<double> _last_scan_rs_times_ms;
122 WorkerDataArray<double> _last_strong_code_root_scan_times_ms;
123 WorkerDataArray<double> _last_obj_copy_times_ms;
124 WorkerDataArray<double> _last_termination_times_ms;
125 WorkerDataArray<size_t> _last_termination_attempts;
126 WorkerDataArray<double> _last_gc_worker_end_times_ms;
127 WorkerDataArray<double> _last_gc_worker_times_ms;
128 WorkerDataArray<double> _last_gc_worker_other_times_ms;
129
130 double _cur_collection_par_time_ms;
131 double _cur_collection_code_root_fixup_time_ms;
132 double _cur_strong_code_root_migration_time_ms;
133 double _cur_strong_code_root_purge_time_ms;
134
135 double _cur_evac_fail_recalc_used;
136 double _cur_evac_fail_restore_remsets;
137 double _cur_evac_fail_remove_self_forwards;
138
139 double _cur_string_dedup_fixup_time_ms;
140 WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
141 WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
142
143 double _cur_clear_ct_time_ms;
144 double _cur_ref_proc_time_ms;
145 double _cur_ref_enq_time_ms;
146
147 double _cur_collection_start_sec;
148 double _root_region_scan_wait_time_ms;
149
150 double _recorded_young_cset_choice_time_ms;
151 double _recorded_non_young_cset_choice_time_ms;
152
214
215 void record_termination(uint worker_i, double ms, size_t attempts) {
216 _last_termination_times_ms.set(worker_i, ms);
217 _last_termination_attempts.set(worker_i, attempts);
218 }
219
220 void record_gc_worker_end_time(uint worker_i, double ms) {
221 _last_gc_worker_end_times_ms.set(worker_i, ms);
222 }
223
224 void record_clear_ct_time(double ms) {
225 _cur_clear_ct_time_ms = ms;
226 }
227
228 void record_par_time(double ms) {
229 _cur_collection_par_time_ms = ms;
230 }
231
232 void record_code_root_fixup_time(double ms) {
233 _cur_collection_code_root_fixup_time_ms = ms;
234 }
235
236 void record_strong_code_root_migration_time(double ms) {
237 _cur_strong_code_root_migration_time_ms = ms;
238 }
239
240 void record_strong_code_root_purge_time(double ms) {
241 _cur_strong_code_root_purge_time_ms = ms;
242 }
243
244 void record_evac_fail_recalc_used_time(double ms) {
245 _cur_evac_fail_recalc_used = ms;
246 }
247
248 void record_evac_fail_restore_remsets(double ms) {
249 _cur_evac_fail_restore_remsets = ms;
250 }
251
252 void record_evac_fail_remove_self_forwards(double ms) {
253 _cur_evac_fail_remove_self_forwards = ms;
254 }
255
256 void note_string_dedup_fixup_start();
257 void note_string_dedup_fixup_end();
|
112 private:
113 uint _active_gc_threads;
114 uint _max_gc_threads;
115
116 WorkerDataArray<double> _last_gc_worker_start_times_ms;
117 WorkerDataArray<double> _last_ext_root_scan_times_ms;
118 WorkerDataArray<double> _last_satb_filtering_times_ms;
119 WorkerDataArray<double> _last_update_rs_times_ms;
120 WorkerDataArray<int> _last_update_rs_processed_buffers;
121 WorkerDataArray<double> _last_scan_rs_times_ms;
122 WorkerDataArray<double> _last_strong_code_root_scan_times_ms;
123 WorkerDataArray<double> _last_obj_copy_times_ms;
124 WorkerDataArray<double> _last_termination_times_ms;
125 WorkerDataArray<size_t> _last_termination_attempts;
126 WorkerDataArray<double> _last_gc_worker_end_times_ms;
127 WorkerDataArray<double> _last_gc_worker_times_ms;
128 WorkerDataArray<double> _last_gc_worker_other_times_ms;
129
130 double _cur_collection_par_time_ms;
131 double _cur_collection_code_root_fixup_time_ms;
132 double _cur_strong_code_root_purge_time_ms;
133
134 double _cur_evac_fail_recalc_used;
135 double _cur_evac_fail_restore_remsets;
136 double _cur_evac_fail_remove_self_forwards;
137
138 double _cur_string_dedup_fixup_time_ms;
139 WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
140 WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
141
142 double _cur_clear_ct_time_ms;
143 double _cur_ref_proc_time_ms;
144 double _cur_ref_enq_time_ms;
145
146 double _cur_collection_start_sec;
147 double _root_region_scan_wait_time_ms;
148
149 double _recorded_young_cset_choice_time_ms;
150 double _recorded_non_young_cset_choice_time_ms;
151
213
214 void record_termination(uint worker_i, double ms, size_t attempts) {
215 _last_termination_times_ms.set(worker_i, ms);
216 _last_termination_attempts.set(worker_i, attempts);
217 }
218
219 void record_gc_worker_end_time(uint worker_i, double ms) {
220 _last_gc_worker_end_times_ms.set(worker_i, ms);
221 }
222
223 void record_clear_ct_time(double ms) {
224 _cur_clear_ct_time_ms = ms;
225 }
226
227 void record_par_time(double ms) {
228 _cur_collection_par_time_ms = ms;
229 }
230
231 void record_code_root_fixup_time(double ms) {
232 _cur_collection_code_root_fixup_time_ms = ms;
233 }
234
235 void record_strong_code_root_purge_time(double ms) {
236 _cur_strong_code_root_purge_time_ms = ms;
237 }
238
239 void record_evac_fail_recalc_used_time(double ms) {
240 _cur_evac_fail_recalc_used = ms;
241 }
242
243 void record_evac_fail_restore_remsets(double ms) {
244 _cur_evac_fail_restore_remsets = ms;
245 }
246
247 void record_evac_fail_remove_self_forwards(double ms) {
248 _cur_evac_fail_remove_self_forwards = ms;
249 }
250
251 void note_string_dedup_fixup_start();
252 void note_string_dedup_fixup_end();
|