103 _sum += _data[i];
104 }
105 _average = (double)_sum / (double)_length;
106 _has_new_data = false;
107 }
108 };
109
110 class G1GCPhaseTimes : public CHeapObj<mtGC> {
111
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_strong_code_root_mark_times_ms;
124 WorkerDataArray<double> _last_obj_copy_times_ms;
125 WorkerDataArray<double> _last_termination_times_ms;
126 WorkerDataArray<size_t> _last_termination_attempts;
127 WorkerDataArray<double> _last_gc_worker_end_times_ms;
128 WorkerDataArray<double> _last_gc_worker_times_ms;
129 WorkerDataArray<double> _last_gc_worker_other_times_ms;
130
131 double _cur_collection_par_time_ms;
132 double _cur_collection_code_root_fixup_time_ms;
133 double _cur_strong_code_root_migration_time_ms;
134 double _cur_strong_code_root_purge_time_ms;
135
136 double _cur_evac_fail_recalc_used;
137 double _cur_evac_fail_restore_remsets;
138 double _cur_evac_fail_remove_self_forwards;
139
140 double _cur_string_dedup_fixup_time_ms;
141 WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
142 WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
143
182 void record_satb_filtering_time(uint worker_i, double ms) {
183 _last_satb_filtering_times_ms.set(worker_i, ms);
184 }
185
186 void record_update_rs_time(uint worker_i, double ms) {
187 _last_update_rs_times_ms.set(worker_i, ms);
188 }
189
190 void record_update_rs_processed_buffers(uint worker_i, int processed_buffers) {
191 _last_update_rs_processed_buffers.set(worker_i, processed_buffers);
192 }
193
194 void record_scan_rs_time(uint worker_i, double ms) {
195 _last_scan_rs_times_ms.set(worker_i, ms);
196 }
197
198 void record_strong_code_root_scan_time(uint worker_i, double ms) {
199 _last_strong_code_root_scan_times_ms.set(worker_i, ms);
200 }
201
202 void record_strong_code_root_mark_time(uint worker_i, double ms) {
203 _last_strong_code_root_mark_times_ms.set(worker_i, ms);
204 }
205
206 void record_obj_copy_time(uint worker_i, double ms) {
207 _last_obj_copy_times_ms.set(worker_i, ms);
208 }
209
210 void add_obj_copy_time(uint worker_i, double ms) {
211 _last_obj_copy_times_ms.add(worker_i, ms);
212 }
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 }
350 }
351
352 double non_young_free_cset_time_ms() {
353 return _recorded_non_young_free_cset_time_ms;
354 }
355
356 double average_last_update_rs_time() {
357 return _last_update_rs_times_ms.average();
358 }
359
360 int sum_last_update_rs_processed_buffers() {
361 return _last_update_rs_processed_buffers.sum();
362 }
363
364 double average_last_scan_rs_time(){
365 return _last_scan_rs_times_ms.average();
366 }
367
368 double average_last_strong_code_root_scan_time(){
369 return _last_strong_code_root_scan_times_ms.average();
370 }
371
372 double average_last_strong_code_root_mark_time(){
373 return _last_strong_code_root_mark_times_ms.average();
374 }
375
376 double average_last_obj_copy_time() {
377 return _last_obj_copy_times_ms.average();
378 }
379
380 double average_last_termination_time() {
381 return _last_termination_times_ms.average();
382 }
383
384 double average_last_ext_root_scan_time() {
385 return _last_ext_root_scan_times_ms.average();
386 }
387
388 double average_last_satb_filtering_times_ms() {
389 return _last_satb_filtering_times_ms.average();
390 }
391 };
392
393 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
|
103 _sum += _data[i];
104 }
105 _average = (double)_sum / (double)_length;
106 _has_new_data = false;
107 }
108 };
109
110 class G1GCPhaseTimes : public CHeapObj<mtGC> {
111
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
181 void record_satb_filtering_time(uint worker_i, double ms) {
182 _last_satb_filtering_times_ms.set(worker_i, ms);
183 }
184
185 void record_update_rs_time(uint worker_i, double ms) {
186 _last_update_rs_times_ms.set(worker_i, ms);
187 }
188
189 void record_update_rs_processed_buffers(uint worker_i, int processed_buffers) {
190 _last_update_rs_processed_buffers.set(worker_i, processed_buffers);
191 }
192
193 void record_scan_rs_time(uint worker_i, double ms) {
194 _last_scan_rs_times_ms.set(worker_i, ms);
195 }
196
197 void record_strong_code_root_scan_time(uint worker_i, double ms) {
198 _last_strong_code_root_scan_times_ms.set(worker_i, ms);
199 }
200
201 void record_obj_copy_time(uint worker_i, double ms) {
202 _last_obj_copy_times_ms.set(worker_i, ms);
203 }
204
205 void add_obj_copy_time(uint worker_i, double ms) {
206 _last_obj_copy_times_ms.add(worker_i, ms);
207 }
208
209 void record_termination(uint worker_i, double ms, size_t attempts) {
210 _last_termination_times_ms.set(worker_i, ms);
211 _last_termination_attempts.set(worker_i, attempts);
212 }
213
214 void record_gc_worker_end_time(uint worker_i, double ms) {
215 _last_gc_worker_end_times_ms.set(worker_i, ms);
216 }
217
218 void record_clear_ct_time(double ms) {
219 _cur_clear_ct_time_ms = ms;
220 }
345 }
346
347 double non_young_free_cset_time_ms() {
348 return _recorded_non_young_free_cset_time_ms;
349 }
350
351 double average_last_update_rs_time() {
352 return _last_update_rs_times_ms.average();
353 }
354
355 int sum_last_update_rs_processed_buffers() {
356 return _last_update_rs_processed_buffers.sum();
357 }
358
359 double average_last_scan_rs_time(){
360 return _last_scan_rs_times_ms.average();
361 }
362
363 double average_last_strong_code_root_scan_time(){
364 return _last_strong_code_root_scan_times_ms.average();
365 }
366
367 double average_last_obj_copy_time() {
368 return _last_obj_copy_times_ms.average();
369 }
370
371 double average_last_termination_time() {
372 return _last_termination_times_ms.average();
373 }
374
375 double average_last_ext_root_scan_time() {
376 return _last_ext_root_scan_times_ms.average();
377 }
378
379 double average_last_satb_filtering_times_ms() {
380 return _last_satb_filtering_times_ms.average();
381 }
382 };
383
384 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
|