src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp

Print this page
rev 6670 : fast reclaim main patch


 140   WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
 141   WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
 142 
 143   double _cur_clear_ct_time_ms;
 144   double _cur_ref_proc_time_ms;
 145   double _cur_ref_enq_time_ms;
 146 
 147   double _cur_collection_start_sec;
 148   double _root_region_scan_wait_time_ms;
 149 
 150   double _recorded_young_cset_choice_time_ms;
 151   double _recorded_non_young_cset_choice_time_ms;
 152 
 153   WorkerDataArray<double> _last_redirty_logged_cards_time_ms;
 154   WorkerDataArray<size_t> _last_redirty_logged_cards_processed_cards;
 155   double _recorded_redirty_logged_cards_time_ms;
 156 
 157   double _recorded_young_free_cset_time_ms;
 158   double _recorded_non_young_free_cset_time_ms;
 159 





 160   double _cur_verify_before_time_ms;
 161   double _cur_verify_after_time_ms;
 162 
 163   // Helper methods for detailed logging
 164   void print_stats(int level, const char* str, double value);

 165   void print_stats(int level, const char* str, double value, uint workers);
 166 
 167  public:
 168   G1GCPhaseTimes(uint max_gc_threads);
 169   void note_gc_start(uint active_gc_threads);
 170   void note_gc_end();
 171   void print(double pause_time_sec);
 172 
 173   void record_gc_worker_start_time(uint worker_i, double ms) {
 174     _last_gc_worker_start_times_ms.set(worker_i, ms);
 175   }
 176 
 177   void record_ext_root_scan_time(uint worker_i, double ms) {
 178     _last_ext_root_scan_times_ms.set(worker_i, ms);
 179   }
 180 
 181   void record_satb_filtering_time(uint worker_i, double ms) {
 182     _last_satb_filtering_times_ms.set(worker_i, ms);
 183   }
 184 


 265   void record_ref_proc_time(double ms) {
 266     _cur_ref_proc_time_ms = ms;
 267   }
 268 
 269   void record_ref_enq_time(double ms) {
 270     _cur_ref_enq_time_ms = ms;
 271   }
 272 
 273   void record_root_region_scan_wait_time(double time_ms) {
 274     _root_region_scan_wait_time_ms = time_ms;
 275   }
 276 
 277   void record_young_free_cset_time_ms(double time_ms) {
 278     _recorded_young_free_cset_time_ms = time_ms;
 279   }
 280 
 281   void record_non_young_free_cset_time_ms(double time_ms) {
 282     _recorded_non_young_free_cset_time_ms = time_ms;
 283   }
 284 










 285   void record_young_cset_choice_time_ms(double time_ms) {
 286     _recorded_young_cset_choice_time_ms = time_ms;
 287   }
 288 
 289   void record_non_young_cset_choice_time_ms(double time_ms) {
 290     _recorded_non_young_cset_choice_time_ms = time_ms;
 291   }
 292 
 293   void record_redirty_logged_cards_time_ms(uint worker_i, double time_ms) {
 294     _last_redirty_logged_cards_time_ms.set(worker_i, time_ms);
 295   }
 296 
 297   void record_redirty_logged_cards_processed_cards(uint worker_i, size_t processed_buffers) {
 298     _last_redirty_logged_cards_processed_cards.set(worker_i, processed_buffers);
 299   }
 300 
 301   void record_redirty_logged_cards_time_ms(double time_ms) {
 302     _recorded_redirty_logged_cards_time_ms = time_ms;
 303   }
 304 


 331   double root_region_scan_wait_time_ms() {
 332     return _root_region_scan_wait_time_ms;
 333   }
 334 
 335   double young_cset_choice_time_ms() {
 336     return _recorded_young_cset_choice_time_ms;
 337   }
 338 
 339   double young_free_cset_time_ms() {
 340     return _recorded_young_free_cset_time_ms;
 341   }
 342 
 343   double non_young_cset_choice_time_ms() {
 344     return _recorded_non_young_cset_choice_time_ms;
 345   }
 346 
 347   double non_young_free_cset_time_ms() {
 348     return _recorded_non_young_free_cset_time_ms;
 349   }
 350 




 351   double average_last_update_rs_time() {
 352     return _last_update_rs_times_ms.average();
 353   }
 354 
 355   int sum_last_update_rs_processed_buffers() {
 356     return _last_update_rs_processed_buffers.sum();
 357   }
 358 
 359   double average_last_scan_rs_time(){
 360     return _last_scan_rs_times_ms.average();
 361   }
 362 
 363   double average_last_strong_code_root_scan_time(){
 364     return _last_strong_code_root_scan_times_ms.average();
 365   }
 366 
 367   double average_last_obj_copy_time() {
 368     return _last_obj_copy_times_ms.average();
 369   }
 370 


 140   WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
 141   WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
 142 
 143   double _cur_clear_ct_time_ms;
 144   double _cur_ref_proc_time_ms;
 145   double _cur_ref_enq_time_ms;
 146 
 147   double _cur_collection_start_sec;
 148   double _root_region_scan_wait_time_ms;
 149 
 150   double _recorded_young_cset_choice_time_ms;
 151   double _recorded_non_young_cset_choice_time_ms;
 152 
 153   WorkerDataArray<double> _last_redirty_logged_cards_time_ms;
 154   WorkerDataArray<size_t> _last_redirty_logged_cards_processed_cards;
 155   double _recorded_redirty_logged_cards_time_ms;
 156 
 157   double _recorded_young_free_cset_time_ms;
 158   double _recorded_non_young_free_cset_time_ms;
 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 
 165   double _cur_verify_before_time_ms;
 166   double _cur_verify_after_time_ms;
 167 
 168   // Helper methods for detailed logging
 169   void print_stats(int level, const char* str, double value);
 170   void print_stats(int level, const char* str, size_t value);
 171   void print_stats(int level, const char* str, double value, uint workers);
 172 
 173  public:
 174   G1GCPhaseTimes(uint max_gc_threads);
 175   void note_gc_start(uint active_gc_threads);
 176   void note_gc_end();
 177   void print(double pause_time_sec);
 178 
 179   void record_gc_worker_start_time(uint worker_i, double ms) {
 180     _last_gc_worker_start_times_ms.set(worker_i, ms);
 181   }
 182 
 183   void record_ext_root_scan_time(uint worker_i, double ms) {
 184     _last_ext_root_scan_times_ms.set(worker_i, ms);
 185   }
 186 
 187   void record_satb_filtering_time(uint worker_i, double ms) {
 188     _last_satb_filtering_times_ms.set(worker_i, ms);
 189   }
 190 


 271   void record_ref_proc_time(double ms) {
 272     _cur_ref_proc_time_ms = ms;
 273   }
 274 
 275   void record_ref_enq_time(double ms) {
 276     _cur_ref_enq_time_ms = ms;
 277   }
 278 
 279   void record_root_region_scan_wait_time(double time_ms) {
 280     _root_region_scan_wait_time_ms = time_ms;
 281   }
 282 
 283   void record_young_free_cset_time_ms(double time_ms) {
 284     _recorded_young_free_cset_time_ms = time_ms;
 285   }
 286 
 287   void record_non_young_free_cset_time_ms(double time_ms) {
 288     _recorded_non_young_free_cset_time_ms = time_ms;
 289   }
 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 
 301   void record_young_cset_choice_time_ms(double time_ms) {
 302     _recorded_young_cset_choice_time_ms = time_ms;
 303   }
 304 
 305   void record_non_young_cset_choice_time_ms(double time_ms) {
 306     _recorded_non_young_cset_choice_time_ms = time_ms;
 307   }
 308 
 309   void record_redirty_logged_cards_time_ms(uint worker_i, double time_ms) {
 310     _last_redirty_logged_cards_time_ms.set(worker_i, time_ms);
 311   }
 312 
 313   void record_redirty_logged_cards_processed_cards(uint worker_i, size_t processed_buffers) {
 314     _last_redirty_logged_cards_processed_cards.set(worker_i, processed_buffers);
 315   }
 316 
 317   void record_redirty_logged_cards_time_ms(double time_ms) {
 318     _recorded_redirty_logged_cards_time_ms = time_ms;
 319   }
 320 


 347   double root_region_scan_wait_time_ms() {
 348     return _root_region_scan_wait_time_ms;
 349   }
 350 
 351   double young_cset_choice_time_ms() {
 352     return _recorded_young_cset_choice_time_ms;
 353   }
 354 
 355   double young_free_cset_time_ms() {
 356     return _recorded_young_free_cset_time_ms;
 357   }
 358 
 359   double non_young_cset_choice_time_ms() {
 360     return _recorded_non_young_cset_choice_time_ms;
 361   }
 362 
 363   double non_young_free_cset_time_ms() {
 364     return _recorded_non_young_free_cset_time_ms;
 365   }
 366 
 367   double fast_reclaim_humongous_time_ms() {
 368     return _cur_fast_reclaim_humongous_time_ms;
 369   }
 370 
 371   double average_last_update_rs_time() {
 372     return _last_update_rs_times_ms.average();
 373   }
 374 
 375   int sum_last_update_rs_processed_buffers() {
 376     return _last_update_rs_processed_buffers.sum();
 377   }
 378 
 379   double average_last_scan_rs_time(){
 380     return _last_scan_rs_times_ms.average();
 381   }
 382 
 383   double average_last_strong_code_root_scan_time(){
 384     return _last_strong_code_root_scan_times_ms.average();
 385   }
 386 
 387   double average_last_obj_copy_time() {
 388     return _last_obj_copy_times_ms.average();
 389   }
 390