155 double _recorded_redirty_logged_cards_time_ms; |
155 double _recorded_redirty_logged_cards_time_ms; |
156 |
156 |
157 double _recorded_young_free_cset_time_ms; |
157 double _recorded_young_free_cset_time_ms; |
158 double _recorded_non_young_free_cset_time_ms; |
158 double _recorded_non_young_free_cset_time_ms; |
159 |
159 |
|
160 double _cur_fast_reclaim_humongous_time_ms; |
|
161 size_t _cur_fast_reclaim_humongous_total; |
|
162 size_t _cur_fast_reclaim_humongous_candidates; |
|
163 size_t _cur_fast_reclaim_humongous_reclaimed; |
|
164 |
160 double _cur_verify_before_time_ms; |
165 double _cur_verify_before_time_ms; |
161 double _cur_verify_after_time_ms; |
166 double _cur_verify_after_time_ms; |
162 |
167 |
163 // Helper methods for detailed logging |
168 // Helper methods for detailed logging |
164 void print_stats(int level, const char* str, double value); |
169 void print_stats(int level, const char* str, double value); |
|
170 void print_stats(int level, const char* str, size_t value); |
165 void print_stats(int level, const char* str, double value, uint workers); |
171 void print_stats(int level, const char* str, double value, uint workers); |
166 |
172 |
167 public: |
173 public: |
168 G1GCPhaseTimes(uint max_gc_threads); |
174 G1GCPhaseTimes(uint max_gc_threads); |
169 void note_gc_start(uint active_gc_threads); |
175 void note_gc_start(uint active_gc_threads); |
280 |
286 |
281 void record_non_young_free_cset_time_ms(double time_ms) { |
287 void record_non_young_free_cset_time_ms(double time_ms) { |
282 _recorded_non_young_free_cset_time_ms = time_ms; |
288 _recorded_non_young_free_cset_time_ms = time_ms; |
283 } |
289 } |
284 |
290 |
|
291 void record_fast_reclaim_humongous_stats(size_t total, size_t candidates) { |
|
292 _cur_fast_reclaim_humongous_total = total; |
|
293 _cur_fast_reclaim_humongous_candidates = candidates; |
|
294 } |
|
295 |
|
296 void record_fast_reclaim_humongous_time_ms(double value, size_t reclaimed) { |
|
297 _cur_fast_reclaim_humongous_time_ms = value; |
|
298 _cur_fast_reclaim_humongous_reclaimed = reclaimed; |
|
299 } |
|
300 |
285 void record_young_cset_choice_time_ms(double time_ms) { |
301 void record_young_cset_choice_time_ms(double time_ms) { |
286 _recorded_young_cset_choice_time_ms = time_ms; |
302 _recorded_young_cset_choice_time_ms = time_ms; |
287 } |
303 } |
288 |
304 |
289 void record_non_young_cset_choice_time_ms(double time_ms) { |
305 void record_non_young_cset_choice_time_ms(double time_ms) { |
346 |
362 |
347 double non_young_free_cset_time_ms() { |
363 double non_young_free_cset_time_ms() { |
348 return _recorded_non_young_free_cset_time_ms; |
364 return _recorded_non_young_free_cset_time_ms; |
349 } |
365 } |
350 |
366 |
|
367 double fast_reclaim_humongous_time_ms() { |
|
368 return _cur_fast_reclaim_humongous_time_ms; |
|
369 } |
|
370 |
351 double average_last_update_rs_time() { |
371 double average_last_update_rs_time() { |
352 return _last_update_rs_times_ms.average(); |
372 return _last_update_rs_times_ms.average(); |
353 } |
373 } |
354 |
374 |
355 int sum_last_update_rs_processed_buffers() { |
375 int sum_last_update_rs_processed_buffers() { |