168 _last_termination_times_ms(_max_gc_threads, "%.1lf"), |
168 _last_termination_times_ms(_max_gc_threads, "%.1lf"), |
169 _last_termination_attempts(_max_gc_threads, SIZE_FORMAT), |
169 _last_termination_attempts(_max_gc_threads, SIZE_FORMAT), |
170 _last_gc_worker_end_times_ms(_max_gc_threads, "%.1lf", false), |
170 _last_gc_worker_end_times_ms(_max_gc_threads, "%.1lf", false), |
171 _last_gc_worker_times_ms(_max_gc_threads, "%.1lf"), |
171 _last_gc_worker_times_ms(_max_gc_threads, "%.1lf"), |
172 _last_gc_worker_other_times_ms(_max_gc_threads, "%.1lf"), |
172 _last_gc_worker_other_times_ms(_max_gc_threads, "%.1lf"), |
|
173 _last_redirty_logged_cards_time_ms(_max_gc_threads, "%.1lf"), |
|
174 _last_redirty_logged_cards_processed_cards(_max_gc_threads, SIZE_FORMAT), |
173 _cur_string_dedup_queue_fixup_worker_times_ms(_max_gc_threads, "%.1lf"), |
175 _cur_string_dedup_queue_fixup_worker_times_ms(_max_gc_threads, "%.1lf"), |
174 _cur_string_dedup_table_fixup_worker_times_ms(_max_gc_threads, "%.1lf") |
176 _cur_string_dedup_table_fixup_worker_times_ms(_max_gc_threads, "%.1lf") |
175 { |
177 { |
176 assert(max_gc_threads > 0, "Must have some GC threads"); |
178 assert(max_gc_threads > 0, "Must have some GC threads"); |
177 } |
179 } |
193 _last_termination_times_ms.reset(); |
195 _last_termination_times_ms.reset(); |
194 _last_termination_attempts.reset(); |
196 _last_termination_attempts.reset(); |
195 _last_gc_worker_end_times_ms.reset(); |
197 _last_gc_worker_end_times_ms.reset(); |
196 _last_gc_worker_times_ms.reset(); |
198 _last_gc_worker_times_ms.reset(); |
197 _last_gc_worker_other_times_ms.reset(); |
199 _last_gc_worker_other_times_ms.reset(); |
|
200 |
|
201 _last_redirty_logged_cards_time_ms.reset(); |
|
202 _last_redirty_logged_cards_processed_cards.reset(); |
|
203 |
198 } |
204 } |
199 |
205 |
200 void G1GCPhaseTimes::note_gc_end() { |
206 void G1GCPhaseTimes::note_gc_end() { |
201 _last_gc_worker_start_times_ms.verify(); |
207 _last_gc_worker_start_times_ms.verify(); |
202 _last_ext_root_scan_times_ms.verify(); |
208 _last_ext_root_scan_times_ms.verify(); |
228 _last_gc_worker_other_times_ms.set(i, worker_other_time); |
234 _last_gc_worker_other_times_ms.set(i, worker_other_time); |
229 } |
235 } |
230 |
236 |
231 _last_gc_worker_times_ms.verify(); |
237 _last_gc_worker_times_ms.verify(); |
232 _last_gc_worker_other_times_ms.verify(); |
238 _last_gc_worker_other_times_ms.verify(); |
|
239 |
|
240 _last_redirty_logged_cards_time_ms.verify(); |
|
241 _last_redirty_logged_cards_processed_cards.verify(); |
233 } |
242 } |
234 |
243 |
235 void G1GCPhaseTimes::note_string_dedup_fixup_start() { |
244 void G1GCPhaseTimes::note_string_dedup_fixup_start() { |
236 _cur_string_dedup_queue_fixup_worker_times_ms.reset(); |
245 _cur_string_dedup_queue_fixup_worker_times_ms.reset(); |
237 _cur_string_dedup_table_fixup_worker_times_ms.reset(); |
246 _cur_string_dedup_table_fixup_worker_times_ms.reset(); |
347 _recorded_non_young_cset_choice_time_ms)); |
356 _recorded_non_young_cset_choice_time_ms)); |
348 print_stats(2, "Ref Proc", _cur_ref_proc_time_ms); |
357 print_stats(2, "Ref Proc", _cur_ref_proc_time_ms); |
349 print_stats(2, "Ref Enq", _cur_ref_enq_time_ms); |
358 print_stats(2, "Ref Enq", _cur_ref_enq_time_ms); |
350 if (G1DeferredRSUpdate) { |
359 if (G1DeferredRSUpdate) { |
351 print_stats(2, "Redirty Cards", _recorded_redirty_logged_cards_time_ms); |
360 print_stats(2, "Redirty Cards", _recorded_redirty_logged_cards_time_ms); |
|
361 if (G1Log::finest()) { |
|
362 _last_redirty_logged_cards_time_ms.print(3, "Parallel Redirty"); |
|
363 _last_redirty_logged_cards_processed_cards.print(3, "Redirtied Cards"); |
|
364 } |
352 } |
365 } |
353 print_stats(2, "Free CSet", |
366 print_stats(2, "Free CSet", |
354 (_recorded_young_free_cset_time_ms + |
367 (_recorded_young_free_cset_time_ms + |
355 _recorded_non_young_free_cset_time_ms)); |
368 _recorded_non_young_free_cset_time_ms)); |
356 if (G1Log::finest()) { |
369 if (G1Log::finest()) { |