164 _last_satb_filtering_times_ms(_max_gc_threads, "%.1lf"), |
164 _last_satb_filtering_times_ms(_max_gc_threads, "%.1lf"), |
165 _last_update_rs_times_ms(_max_gc_threads, "%.1lf"), |
165 _last_update_rs_times_ms(_max_gc_threads, "%.1lf"), |
166 _last_update_rs_processed_buffers(_max_gc_threads, "%d"), |
166 _last_update_rs_processed_buffers(_max_gc_threads, "%d"), |
167 _last_scan_rs_times_ms(_max_gc_threads, "%.1lf"), |
167 _last_scan_rs_times_ms(_max_gc_threads, "%.1lf"), |
168 _last_strong_code_root_scan_times_ms(_max_gc_threads, "%.1lf"), |
168 _last_strong_code_root_scan_times_ms(_max_gc_threads, "%.1lf"), |
169 _last_strong_code_root_mark_times_ms(_max_gc_threads, "%.1lf"), |
|
170 _last_obj_copy_times_ms(_max_gc_threads, "%.1lf"), |
169 _last_obj_copy_times_ms(_max_gc_threads, "%.1lf"), |
171 _last_termination_times_ms(_max_gc_threads, "%.1lf"), |
170 _last_termination_times_ms(_max_gc_threads, "%.1lf"), |
172 _last_termination_attempts(_max_gc_threads, SIZE_FORMAT), |
171 _last_termination_attempts(_max_gc_threads, SIZE_FORMAT), |
173 _last_gc_worker_end_times_ms(_max_gc_threads, "%.1lf", false), |
172 _last_gc_worker_end_times_ms(_max_gc_threads, "%.1lf", false), |
174 _last_gc_worker_times_ms(_max_gc_threads, "%.1lf"), |
173 _last_gc_worker_times_ms(_max_gc_threads, "%.1lf"), |
191 _last_satb_filtering_times_ms.reset(); |
190 _last_satb_filtering_times_ms.reset(); |
192 _last_update_rs_times_ms.reset(); |
191 _last_update_rs_times_ms.reset(); |
193 _last_update_rs_processed_buffers.reset(); |
192 _last_update_rs_processed_buffers.reset(); |
194 _last_scan_rs_times_ms.reset(); |
193 _last_scan_rs_times_ms.reset(); |
195 _last_strong_code_root_scan_times_ms.reset(); |
194 _last_strong_code_root_scan_times_ms.reset(); |
196 _last_strong_code_root_mark_times_ms.reset(); |
|
197 _last_obj_copy_times_ms.reset(); |
195 _last_obj_copy_times_ms.reset(); |
198 _last_termination_times_ms.reset(); |
196 _last_termination_times_ms.reset(); |
199 _last_termination_attempts.reset(); |
197 _last_termination_attempts.reset(); |
200 _last_gc_worker_end_times_ms.reset(); |
198 _last_gc_worker_end_times_ms.reset(); |
201 _last_gc_worker_times_ms.reset(); |
199 _last_gc_worker_times_ms.reset(); |
212 _last_satb_filtering_times_ms.verify(); |
210 _last_satb_filtering_times_ms.verify(); |
213 _last_update_rs_times_ms.verify(); |
211 _last_update_rs_times_ms.verify(); |
214 _last_update_rs_processed_buffers.verify(); |
212 _last_update_rs_processed_buffers.verify(); |
215 _last_scan_rs_times_ms.verify(); |
213 _last_scan_rs_times_ms.verify(); |
216 _last_strong_code_root_scan_times_ms.verify(); |
214 _last_strong_code_root_scan_times_ms.verify(); |
217 _last_strong_code_root_mark_times_ms.verify(); |
|
218 _last_obj_copy_times_ms.verify(); |
215 _last_obj_copy_times_ms.verify(); |
219 _last_termination_times_ms.verify(); |
216 _last_termination_times_ms.verify(); |
220 _last_termination_attempts.verify(); |
217 _last_termination_attempts.verify(); |
221 _last_gc_worker_end_times_ms.verify(); |
218 _last_gc_worker_end_times_ms.verify(); |
222 |
219 |
227 double worker_known_time = _last_ext_root_scan_times_ms.get(i) + |
224 double worker_known_time = _last_ext_root_scan_times_ms.get(i) + |
228 _last_satb_filtering_times_ms.get(i) + |
225 _last_satb_filtering_times_ms.get(i) + |
229 _last_update_rs_times_ms.get(i) + |
226 _last_update_rs_times_ms.get(i) + |
230 _last_scan_rs_times_ms.get(i) + |
227 _last_scan_rs_times_ms.get(i) + |
231 _last_strong_code_root_scan_times_ms.get(i) + |
228 _last_strong_code_root_scan_times_ms.get(i) + |
232 _last_strong_code_root_mark_times_ms.get(i) + |
|
233 _last_obj_copy_times_ms.get(i) + |
229 _last_obj_copy_times_ms.get(i) + |
234 _last_termination_times_ms.get(i); |
230 _last_termination_times_ms.get(i); |
235 |
231 |
236 double worker_other_time = worker_time - worker_known_time; |
232 double worker_other_time = worker_time - worker_known_time; |
237 _last_gc_worker_other_times_ms.set(i, worker_other_time); |
233 _last_gc_worker_other_times_ms.set(i, worker_other_time); |
298 print_stats(1, "Parallel Time", _cur_collection_par_time_ms, _active_gc_threads); |
294 print_stats(1, "Parallel Time", _cur_collection_par_time_ms, _active_gc_threads); |
299 _last_gc_worker_start_times_ms.print(2, "GC Worker Start (ms)"); |
295 _last_gc_worker_start_times_ms.print(2, "GC Worker Start (ms)"); |
300 _last_ext_root_scan_times_ms.print(2, "Ext Root Scanning (ms)"); |
296 _last_ext_root_scan_times_ms.print(2, "Ext Root Scanning (ms)"); |
301 if (_last_satb_filtering_times_ms.sum() > 0.0) { |
297 if (_last_satb_filtering_times_ms.sum() > 0.0) { |
302 _last_satb_filtering_times_ms.print(2, "SATB Filtering (ms)"); |
298 _last_satb_filtering_times_ms.print(2, "SATB Filtering (ms)"); |
303 } |
|
304 if (_last_strong_code_root_mark_times_ms.sum() > 0.0) { |
|
305 _last_strong_code_root_mark_times_ms.print(2, "Code Root Marking (ms)"); |
|
306 } |
299 } |
307 _last_update_rs_times_ms.print(2, "Update RS (ms)"); |
300 _last_update_rs_times_ms.print(2, "Update RS (ms)"); |
308 _last_update_rs_processed_buffers.print(3, "Processed Buffers"); |
301 _last_update_rs_processed_buffers.print(3, "Processed Buffers"); |
309 _last_scan_rs_times_ms.print(2, "Scan RS (ms)"); |
302 _last_scan_rs_times_ms.print(2, "Scan RS (ms)"); |
310 _last_strong_code_root_scan_times_ms.print(2, "Code Root Scanning (ms)"); |
303 _last_strong_code_root_scan_times_ms.print(2, "Code Root Scanning (ms)"); |
318 _last_gc_worker_end_times_ms.print(2, "GC Worker End (ms)"); |
311 _last_gc_worker_end_times_ms.print(2, "GC Worker End (ms)"); |
319 } else { |
312 } else { |
320 _last_ext_root_scan_times_ms.print(1, "Ext Root Scanning (ms)"); |
313 _last_ext_root_scan_times_ms.print(1, "Ext Root Scanning (ms)"); |
321 if (_last_satb_filtering_times_ms.sum() > 0.0) { |
314 if (_last_satb_filtering_times_ms.sum() > 0.0) { |
322 _last_satb_filtering_times_ms.print(1, "SATB Filtering (ms)"); |
315 _last_satb_filtering_times_ms.print(1, "SATB Filtering (ms)"); |
323 } |
|
324 if (_last_strong_code_root_mark_times_ms.sum() > 0.0) { |
|
325 _last_strong_code_root_mark_times_ms.print(1, "Code Root Marking (ms)"); |
|
326 } |
316 } |
327 _last_update_rs_times_ms.print(1, "Update RS (ms)"); |
317 _last_update_rs_times_ms.print(1, "Update RS (ms)"); |
328 _last_update_rs_processed_buffers.print(2, "Processed Buffers"); |
318 _last_update_rs_processed_buffers.print(2, "Processed Buffers"); |
329 _last_scan_rs_times_ms.print(1, "Scan RS (ms)"); |
319 _last_scan_rs_times_ms.print(1, "Scan RS (ms)"); |
330 _last_strong_code_root_scan_times_ms.print(1, "Code Root Scanning (ms)"); |
320 _last_strong_code_root_scan_times_ms.print(1, "Code Root Scanning (ms)"); |