comparison src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp @ 20296:a3953c777565

8027959: Early reclamation of large objects in G1 Summary: Try to reclaim humongous objects at every young collection after doing a conservative estimate of its liveness. Reviewed-by: brutisso, mgerdin
author tschatzl
date Wed, 23 Jul 2014 09:03:32 +0200
parents 2c6ef90f030a
children 7baf47cb97cb
comparison
equal deleted inserted replaced
20295:3f2894c5052e 20296:a3953c777565
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() {