< prev index next >

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

Print this page
rev 7557 : 8060025: Object copy time regressions after JDK-8031323 and JDK-8057536
Summary: Evaluate and improve object copy time by micro-optimizations and splitting out slow and fast paths aggressively.
Reviewed-by:
Contributed-by: Tony Printezis <tprintezis@twitter.com>, Thomas Schatzl <thomas.schatzl@oracle.com>
rev 7559 : imported patch mikael-refactor-cset-state
rev 7560 : imported patch kim-review


 873   // The amount of survivor regions after a collection.
 874   uint _recorded_survivor_regions;
 875   // List of survivor regions.
 876   HeapRegion* _recorded_survivor_head;
 877   HeapRegion* _recorded_survivor_tail;
 878 
 879   ageTable _survivors_age_table;
 880 
 881 public:
 882   uint tenuring_threshold() const { return _tenuring_threshold; }
 883 
 884   static const uint REGIONS_UNLIMITED = (uint) -1;
 885 
 886   uint max_regions(InCSetState dest) {
 887     switch (dest.value()) {
 888       case InCSetState::Young:
 889         return _max_survivor_regions;
 890       case InCSetState::Old:
 891         return REGIONS_UNLIMITED;
 892       default:
 893         assert(false, err_msg("Unknown dest state: %d", dest.value()));
 894         break;
 895     }
 896     // keep some compilers happy
 897     return 0;
 898   }
 899 
 900   void note_start_adding_survivor_regions() {
 901     _survivor_surv_rate_group->start_adding_regions();
 902   }
 903 
 904   void note_stop_adding_survivor_regions() {
 905     _survivor_surv_rate_group->stop_adding_regions();
 906   }
 907 
 908   void record_survivor_regions(uint regions,
 909                                HeapRegion* head,
 910                                HeapRegion* tail) {
 911     _recorded_survivor_regions = regions;
 912     _recorded_survivor_head    = head;
 913     _recorded_survivor_tail    = tail;




 873   // The amount of survivor regions after a collection.
 874   uint _recorded_survivor_regions;
 875   // List of survivor regions.
 876   HeapRegion* _recorded_survivor_head;
 877   HeapRegion* _recorded_survivor_tail;
 878 
 879   ageTable _survivors_age_table;
 880 
 881 public:
 882   uint tenuring_threshold() const { return _tenuring_threshold; }
 883 
 884   static const uint REGIONS_UNLIMITED = (uint) -1;
 885 
 886   uint max_regions(InCSetState dest) {
 887     switch (dest.value()) {
 888       case InCSetState::Young:
 889         return _max_survivor_regions;
 890       case InCSetState::Old:
 891         return REGIONS_UNLIMITED;
 892       default:
 893         assert(false, err_msg("Unknown dest state: " CSETSTATE_FORMAT, dest.value()));
 894         break;
 895     }
 896     // keep some compilers happy
 897     return 0;
 898   }
 899 
 900   void note_start_adding_survivor_regions() {
 901     _survivor_surv_rate_group->start_adding_regions();
 902   }
 903 
 904   void note_stop_adding_survivor_regions() {
 905     _survivor_surv_rate_group->stop_adding_regions();
 906   }
 907 
 908   void record_survivor_regions(uint regions,
 909                                HeapRegion* head,
 910                                HeapRegion* tail) {
 911     _recorded_survivor_regions = regions;
 912     _recorded_survivor_head    = head;
 913     _recorded_survivor_tail    = tail;


< prev index next >