47 AdaptiveSizePolicy::AdaptiveSizePolicy(size_t init_eden_size, |
47 AdaptiveSizePolicy::AdaptiveSizePolicy(size_t init_eden_size, |
48 size_t init_promo_size, |
48 size_t init_promo_size, |
49 size_t init_survivor_size, |
49 size_t init_survivor_size, |
50 double gc_pause_goal_sec, |
50 double gc_pause_goal_sec, |
51 uint gc_cost_ratio) : |
51 uint gc_cost_ratio) : |
|
52 _throughput_goal(1.0 - double(1.0 / (1.0 + (double) gc_cost_ratio))), |
52 _eden_size(init_eden_size), |
53 _eden_size(init_eden_size), |
53 _promo_size(init_promo_size), |
54 _promo_size(init_promo_size), |
54 _survivor_size(init_survivor_size), |
55 _survivor_size(init_survivor_size), |
55 _gc_pause_goal_sec(gc_pause_goal_sec), |
|
56 _throughput_goal(1.0 - double(1.0 / (1.0 + (double) gc_cost_ratio))), |
|
57 _gc_overhead_limit_exceeded(false), |
56 _gc_overhead_limit_exceeded(false), |
58 _print_gc_overhead_limit_would_be_exceeded(false), |
57 _print_gc_overhead_limit_would_be_exceeded(false), |
59 _gc_overhead_limit_count(0), |
58 _gc_overhead_limit_count(0), |
60 _latest_minor_mutator_interval_seconds(0), |
59 _latest_minor_mutator_interval_seconds(0), |
61 _threshold_tolerance_percent(1.0 + ThresholdTolerance/100.0), |
60 _threshold_tolerance_percent(1.0 + ThresholdTolerance/100.0), |
|
61 _gc_pause_goal_sec(gc_pause_goal_sec), |
62 _young_gen_change_for_minor_throughput(0), |
62 _young_gen_change_for_minor_throughput(0), |
63 _old_gen_change_for_major_throughput(0) { |
63 _old_gen_change_for_major_throughput(0) { |
64 assert(AdaptiveSizePolicyGCTimeLimitThreshold > 0, |
64 assert(AdaptiveSizePolicyGCTimeLimitThreshold > 0, |
65 "No opportunity to clear SoftReferences before GC overhead limit"); |
65 "No opportunity to clear SoftReferences before GC overhead limit"); |
66 _avg_minor_pause = |
66 _avg_minor_pause = |