< prev index next >
src/hotspot/share/gc/g1/g1Policy.hpp
Print this page
rev 57223 : imported patch 8225484-changes-to-survivor-calculation
@@ -83,11 +83,13 @@
uint _young_list_max_length;
// The survivor rate groups below must be initialized after the predictor because they
// indirectly use it through the "this" object passed to their constructor.
G1SurvRateGroup* _eden_surv_rate_group;
- G1SurvRateGroup* _survivor_surv_rate_group;
+
+ size_t _survivor_used_bytes_at_start;
+ size_t _survivor_used_bytes_at_end;
double _reserve_factor;
// This will be set when the heap is expanded
// for the first time during initialization.
uint _reserve_regions;
@@ -129,15 +131,10 @@
void set_region_eden(HeapRegion* hr) {
hr->set_eden();
hr->install_surv_rate_group(_eden_surv_rate_group);
}
- void set_region_survivor(HeapRegion* hr) {
- assert(hr->is_survivor(), "pre-condition");
- hr->install_surv_rate_group(_survivor_surv_rate_group);
- }
-
void record_rs_length(size_t rs_length) {
_rs_length = rs_length;
}
double predict_base_elapsed_time_ms(size_t num_pending_cards) const;
@@ -155,11 +152,10 @@
void cset_regions_freed() {
bool update = should_update_surv_rate_group_predictors();
_eden_surv_rate_group->all_surviving_words_recorded(predictor(), update);
- _survivor_surv_rate_group->all_surviving_words_recorded(predictor(), update);
}
G1MMUTracker* mmu_tracker() {
return _mmu_tracker;
}
@@ -403,10 +399,12 @@
// The limit on the number of regions allocated for survivors.
uint _max_survivor_regions;
AgeTable _survivors_age_table;
+ size_t _surviving_survivor_words;
+
size_t desired_survivor_size(uint max_regions) const;
// Fraction used when predicting how many optional regions to include in
// the CSet. This fraction of the available time is used for optional regions,
// the rest is used to add old regions to the normal CSet.
@@ -421,22 +419,18 @@
uint max_survivor_regions() {
return _max_survivor_regions;
}
- void note_start_adding_survivor_regions() {
- _survivor_surv_rate_group->start_adding_regions();
- }
-
- void note_stop_adding_survivor_regions() {
- _survivor_surv_rate_group->stop_adding_regions();
- }
-
void record_age_table(AgeTable* age_table) {
_survivors_age_table.merge(age_table);
}
+ void record_surviving_survivor_words(size_t words) {
+ _surviving_survivor_words += words;
+ }
+
void print_age_table();
void update_max_gc_locker_expansion();
void update_survivors_policy();
< prev index next >