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