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