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

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

Print this page




 296   uintx reserve_perc = G1ReservePercent;
 297   // Put an artificial ceiling on this so that it's not set to a silly value.
 298   if (reserve_perc > 50) {
 299     reserve_perc = 50;
 300     warning("G1ReservePercent is set to a value that is too large, "
 301             "it's been updated to %u", reserve_perc);
 302   }
 303   _reserve_factor = (double) reserve_perc / 100.0;
 304   // This will be set when the heap is expanded
 305   // for the first time during initialization.
 306   _reserve_regions = 0;
 307 
 308   initialize_all();
 309   _collectionSetChooser = new CollectionSetChooser();
 310   _young_gen_sizer = new G1YoungGenSizer(); // Must be after call to initialize_flags
 311 }
 312 
 313 void G1CollectorPolicy::initialize_flags() {
 314   set_min_alignment(HeapRegion::GrainBytes);
 315   size_t card_table_alignment = GenRemSet::max_alignment_constraint(rem_set_name());
 316   set_max_alignment(MAX2(card_table_alignment, min_alignment()));

 317   if (SurvivorRatio < 1) {
 318     vm_exit_during_initialization("Invalid survivor ratio specified");
 319   }
 320   CollectorPolicy::initialize_flags();
 321 }
 322 
 323 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) {
 324   assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max");
 325   assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds");
 326   assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds");
 327 
 328   if (FLAG_IS_CMDLINE(NewRatio)) {
 329     if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) {
 330       warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio");
 331     } else {
 332       _sizer_kind = SizerNewRatio;
 333       _adaptive_size = false;
 334       return;
 335     }
 336   }




 296   uintx reserve_perc = G1ReservePercent;
 297   // Put an artificial ceiling on this so that it's not set to a silly value.
 298   if (reserve_perc > 50) {
 299     reserve_perc = 50;
 300     warning("G1ReservePercent is set to a value that is too large, "
 301             "it's been updated to %u", reserve_perc);
 302   }
 303   _reserve_factor = (double) reserve_perc / 100.0;
 304   // This will be set when the heap is expanded
 305   // for the first time during initialization.
 306   _reserve_regions = 0;
 307 
 308   initialize_all();
 309   _collectionSetChooser = new CollectionSetChooser();
 310   _young_gen_sizer = new G1YoungGenSizer(); // Must be after call to initialize_flags
 311 }
 312 
 313 void G1CollectorPolicy::initialize_flags() {
 314   set_min_alignment(HeapRegion::GrainBytes);
 315   size_t card_table_alignment = GenRemSet::max_alignment_constraint(rem_set_name());
 316   size_t page_size = UseLargePages ? os::large_page_size() : os::vm_page_size();
 317   set_max_alignment(MAX3(card_table_alignment, min_alignment(), page_size));
 318   if (SurvivorRatio < 1) {
 319     vm_exit_during_initialization("Invalid survivor ratio specified");
 320   }
 321   CollectorPolicy::initialize_flags();
 322 }
 323 
 324 G1YoungGenSizer::G1YoungGenSizer() : _sizer_kind(SizerDefaults), _adaptive_size(true) {
 325   assert(G1NewSizePercent <= G1MaxNewSizePercent, "Min larger than max");
 326   assert(G1NewSizePercent > 0 && G1NewSizePercent < 100, "Min out of bounds");
 327   assert(G1MaxNewSizePercent > 0 && G1MaxNewSizePercent < 100, "Max out of bounds");
 328 
 329   if (FLAG_IS_CMDLINE(NewRatio)) {
 330     if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) {
 331       warning("-XX:NewSize and -XX:MaxNewSize override -XX:NewRatio");
 332     } else {
 333       _sizer_kind = SizerNewRatio;
 334       _adaptive_size = false;
 335       return;
 336     }
 337   }


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