327 vm_exit_during_initialization("Invalid survivor ratio specified"); 328 } 329 CollectorPolicy::initialize_flags(); 330 } 331 332 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) { 333 assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max"); 334 assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds"); 335 assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds"); 336 337 if (FLAG_IS_CMDLINE(NewRatio)) { 338 if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { 339 warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio"); 340 } else { 341 _sizer_kind = SizerNewRatio; 342 _adaptive_size = false; 343 return; 344 } 345 } 346 347 if (FLAG_IS_CMDLINE(NewSize)) { 348 _min_desired_young_length = MAX2((uint) (NewSize / HeapRegion::GrainBytes), 349 1U); 350 if (FLAG_IS_CMDLINE(MaxNewSize)) { 351 _max_desired_young_length = 352 MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), 353 1U); 354 _sizer_kind = SizerMaxAndNewSize; 355 _adaptive_size = _min_desired_young_length == _max_desired_young_length; 356 } else { 357 _sizer_kind = SizerNewSizeOnly; 358 } 359 } else if (FLAG_IS_CMDLINE(MaxNewSize)) { 360 _max_desired_young_length = 361 MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), 362 1U); 363 _sizer_kind = SizerMaxNewSizeOnly; 364 } 365 } 366 | 327 vm_exit_during_initialization("Invalid survivor ratio specified"); 328 } 329 CollectorPolicy::initialize_flags(); 330 } 331 332 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) { 333 assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max"); 334 assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds"); 335 assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds"); 336 337 if (FLAG_IS_CMDLINE(NewRatio)) { 338 if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { 339 warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio"); 340 } else { 341 _sizer_kind = SizerNewRatio; 342 _adaptive_size = false; 343 return; 344 } 345 } 346 347 if (FLAG_IS_CMDLINE(NewSize) && FLAG_IS_CMDLINE(MaxNewSize) && NewSize > MaxNewSize) { 348 vm_exit_during_initialization("Incompatible initial and maximum young gen sizes specified"); 349 } 350 351 if (FLAG_IS_CMDLINE(NewSize)) { 352 _min_desired_young_length = MAX2((uint) (NewSize / HeapRegion::GrainBytes), 353 1U); 354 if (FLAG_IS_CMDLINE(MaxNewSize)) { 355 _max_desired_young_length = 356 MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), 357 1U); 358 _sizer_kind = SizerMaxAndNewSize; 359 _adaptive_size = _min_desired_young_length == _max_desired_young_length; 360 } else { 361 _sizer_kind = SizerNewSizeOnly; 362 } 363 } else if (FLAG_IS_CMDLINE(MaxNewSize)) { 364 _max_desired_young_length = 365 MAX2((uint) (MaxNewSize / HeapRegion::GrainBytes), 366 1U); 367 _sizer_kind = SizerMaxNewSizeOnly; 368 } 369 } 370 |