src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/gc_implementation/g1

src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp

Print this page




 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 


src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File