384 bool adaptive_young_list_length() const;
385
386 void transfer_survivors_to_cset(const G1SurvivorRegions* survivors);
387
388 private:
389 //
390 // Survivor regions policy.
391 //
392
393 // Current tenuring threshold, set to 0 if the collector reaches the
394 // maximum amount of survivors regions.
395 uint _tenuring_threshold;
396
397 // The limit on the number of regions allocated for survivors.
398 uint _max_survivor_regions;
399
400 AgeTable _survivors_age_table;
401
402 size_t desired_survivor_size() const;
403 public:
404 uint tenuring_threshold() const { return _tenuring_threshold; }
405
406 uint max_survivor_regions() {
407 return _max_survivor_regions;
408 }
409
410 void note_start_adding_survivor_regions() {
411 _survivor_surv_rate_group->start_adding_regions();
412 }
413
414 void note_stop_adding_survivor_regions() {
415 _survivor_surv_rate_group->stop_adding_regions();
416 }
417
418 void record_age_table(AgeTable* age_table) {
419 _survivors_age_table.merge(age_table);
420 }
421
422 void print_age_table();
423
|
384 bool adaptive_young_list_length() const;
385
386 void transfer_survivors_to_cset(const G1SurvivorRegions* survivors);
387
388 private:
389 //
390 // Survivor regions policy.
391 //
392
393 // Current tenuring threshold, set to 0 if the collector reaches the
394 // maximum amount of survivors regions.
395 uint _tenuring_threshold;
396
397 // The limit on the number of regions allocated for survivors.
398 uint _max_survivor_regions;
399
400 AgeTable _survivors_age_table;
401
402 size_t desired_survivor_size() const;
403 public:
404 // Fraction used when predicting how many optional regions to include in
405 // the CSet. This fraction of the available time is used for optional regions,
406 // the rest is used to add old regions to the normal CSet.
407 double optional_prediction_fraction() { return 0.2; }
408 // Fraction used when evacuating the optional regions. This fraction of the
409 // remaining time is used to choose what regions to include in the evacuation.
410 double optional_evacuation_fraction() { return 0.75; }
411
412 uint tenuring_threshold() const { return _tenuring_threshold; }
413
414 uint max_survivor_regions() {
415 return _max_survivor_regions;
416 }
417
418 void note_start_adding_survivor_regions() {
419 _survivor_surv_rate_group->start_adding_regions();
420 }
421
422 void note_stop_adding_survivor_regions() {
423 _survivor_surv_rate_group->stop_adding_regions();
424 }
425
426 void record_age_table(AgeTable* age_table) {
427 _survivors_age_table.merge(age_table);
428 }
429
430 void print_age_table();
431
|