307 } |
307 } |
308 CollectorPolicy::initialize_flags(); |
308 CollectorPolicy::initialize_flags(); |
309 } |
309 } |
310 |
310 |
311 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) { |
311 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) { |
312 assert(G1DefaultMinNewGenPercent <= G1DefaultMaxNewGenPercent, "Min larger than max"); |
312 assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max"); |
313 assert(G1DefaultMinNewGenPercent > 0 && G1DefaultMinNewGenPercent < 100, "Min out of bounds"); |
313 assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds"); |
314 assert(G1DefaultMaxNewGenPercent > 0 && G1DefaultMaxNewGenPercent < 100, "Max out of bounds"); |
314 assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds"); |
315 |
315 |
316 if (FLAG_IS_CMDLINE(NewRatio)) { |
316 if (FLAG_IS_CMDLINE(NewRatio)) { |
317 if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { |
317 if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { |
318 warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio"); |
318 warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio"); |
319 } else { |
319 } else { |
342 _sizer_kind = SizerMaxNewSizeOnly; |
342 _sizer_kind = SizerMaxNewSizeOnly; |
343 } |
343 } |
344 } |
344 } |
345 |
345 |
346 uint G1YoungGenSizer::calculate_default_min_length(uint new_number_of_heap_regions) { |
346 uint G1YoungGenSizer::calculate_default_min_length(uint new_number_of_heap_regions) { |
347 uint default_value = (new_number_of_heap_regions * G1DefaultMinNewGenPercent) / 100; |
347 uint default_value = (new_number_of_heap_regions * G1NewSizePercent) / 100; |
348 return MAX2(1U, default_value); |
348 return MAX2(1U, default_value); |
349 } |
349 } |
350 |
350 |
351 uint G1YoungGenSizer::calculate_default_max_length(uint new_number_of_heap_regions) { |
351 uint G1YoungGenSizer::calculate_default_max_length(uint new_number_of_heap_regions) { |
352 uint default_value = (new_number_of_heap_regions * G1DefaultMaxNewGenPercent) / 100; |
352 uint default_value = (new_number_of_heap_regions * G1MaxNewSizePercent) / 100; |
353 return MAX2(1U, default_value); |
353 return MAX2(1U, default_value); |
354 } |
354 } |
355 |
355 |
356 void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { |
356 void G1YoungGenSizer::heap_size_changed(uint new_number_of_heap_regions) { |
357 assert(new_number_of_heap_regions > 0, "Heap must be initialized"); |
357 assert(new_number_of_heap_regions > 0, "Heap must be initialized"); |