106 } |
106 } |
107 |
107 |
108 assert(*min_young_length <= *max_young_length, "Invalid min/max young gen size values"); |
108 assert(*min_young_length <= *max_young_length, "Invalid min/max young gen size values"); |
109 } |
109 } |
110 |
110 |
111 uint G1YoungGenSizer::max_young_length(uint number_of_heap_regions) { |
111 void G1YoungGenSizer::adjust_max_new_size(uint number_of_heap_regions) { |
|
112 |
112 // We need to pass the desired values because recalculation may not update these |
113 // We need to pass the desired values because recalculation may not update these |
113 // values in some cases. |
114 // values in some cases. |
114 uint temp = _min_desired_young_length; |
115 uint temp = _min_desired_young_length; |
115 uint result = _max_desired_young_length; |
116 uint result = _max_desired_young_length; |
116 recalculate_min_max_young_length(number_of_heap_regions, &temp, &result); |
117 recalculate_min_max_young_length(number_of_heap_regions, &temp, &result); |
117 return result; |
118 |
|
119 size_t max_young_size = result * HeapRegion::GrainBytes; |
|
120 if (max_young_size != MaxNewSize) { |
|
121 FLAG_SET_ERGO(size_t, MaxNewSize, max_young_size); |
|
122 } |
118 } |
123 } |
119 |
124 |
120 void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { |
125 void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { |
121 recalculate_min_max_young_length(new_number_of_heap_regions, &_min_desired_young_length, |
126 recalculate_min_max_young_length(new_number_of_heap_regions, &_min_desired_young_length, |
122 &_max_desired_young_length); |
127 &_max_desired_young_length); |