71 size_t _promotion_potential;
72
73 // When a region is selected to be promoted in place, the remaining free memory is filled
74 // in to prevent additional allocations (preventing premature promotion of newly allocated
75 // objects. This field records the total amount of padding used for such regions.
76 size_t _pad_for_promote_in_place;
77
78 // During construction of the collection set, we keep track of regions that are eligible
79 // for promotion in place. These fields track the count of those humongous and regular regions.
80 // This data is used to force the evacuation phase even when the collection set is otherwise
81 // empty.
82 size_t _promotable_humongous_regions;
83 size_t _promotable_regular_regions;
84
85 // True if old regions may be safely traversed by the remembered set scan.
86 bool _is_parsable;
87
88 bool coalesce_and_fill();
89
90 public:
91 ShenandoahOldGeneration(uint max_queues, size_t max_capacity, size_t soft_max_capacity);
92
93 ShenandoahHeuristics* initialize_heuristics(ShenandoahMode* gc_mode) override;
94
95 const char* name() const override {
96 return "Old";
97 }
98
99 ShenandoahOldHeuristics* heuristics() const override {
100 return _old_heuristics;
101 }
102
103 // See description in field declaration
104 void set_promoted_reserve(size_t new_val);
105 size_t get_promoted_reserve() const;
106
107 // The promotion reserve is increased when rebuilding the free set transfers a region to the old generation
108 void augment_promoted_reserve(size_t increment);
109
110 // This zeros out the expended promotion count after the promotion reserve is computed
111 void reset_promoted_expended();
|
71 size_t _promotion_potential;
72
73 // When a region is selected to be promoted in place, the remaining free memory is filled
74 // in to prevent additional allocations (preventing premature promotion of newly allocated
75 // objects. This field records the total amount of padding used for such regions.
76 size_t _pad_for_promote_in_place;
77
78 // During construction of the collection set, we keep track of regions that are eligible
79 // for promotion in place. These fields track the count of those humongous and regular regions.
80 // This data is used to force the evacuation phase even when the collection set is otherwise
81 // empty.
82 size_t _promotable_humongous_regions;
83 size_t _promotable_regular_regions;
84
85 // True if old regions may be safely traversed by the remembered set scan.
86 bool _is_parsable;
87
88 bool coalesce_and_fill();
89
90 public:
91 ShenandoahOldGeneration(uint max_queues, size_t max_capacity);
92
93 ShenandoahHeuristics* initialize_heuristics(ShenandoahMode* gc_mode) override;
94
95 const char* name() const override {
96 return "Old";
97 }
98
99 ShenandoahOldHeuristics* heuristics() const override {
100 return _old_heuristics;
101 }
102
103 // See description in field declaration
104 void set_promoted_reserve(size_t new_val);
105 size_t get_promoted_reserve() const;
106
107 // The promotion reserve is increased when rebuilding the free set transfers a region to the old generation
108 void augment_promoted_reserve(size_t increment);
109
110 // This zeros out the expended promotion count after the promotion reserve is computed
111 void reset_promoted_expended();
|