29 #include "gc_implementation/shared/gcPolicyCounters.hpp"
30 #include "gc_interface/gcCause.hpp"
31 #include "memory/collectorPolicy.hpp"
32 #include "runtime/timer.hpp"
33 #include "utilities/top.hpp"
34
35 #include <math.h>
36
37 PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size,
38 size_t init_promo_size,
39 size_t init_survivor_size,
40 size_t intra_generation_alignment,
41 double gc_pause_goal_sec,
42 double gc_minor_pause_goal_sec,
43 uint gc_cost_ratio) :
44 AdaptiveSizePolicy(init_eden_size,
45 init_promo_size,
46 init_survivor_size,
47 gc_pause_goal_sec,
48 gc_cost_ratio),
49 _collection_cost_margin_fraction(AdaptiveSizePolicyCollectionCostMargin/
50 100.0),
51 _intra_generation_alignment(intra_generation_alignment),
52 _live_at_last_full_gc(init_promo_size),
53 _gc_minor_pause_goal_sec(gc_minor_pause_goal_sec),
54 _latest_major_mutator_interval_seconds(0),
55 _young_gen_change_for_major_pause_count(0)
56 {
57 // Sizing policy statistics
58 _avg_major_pause =
59 new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding);
60 _avg_minor_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
61 _avg_major_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
62
63 _avg_base_footprint = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
64 _major_pause_old_estimator =
65 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
66 _major_pause_young_estimator =
67 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
68 _major_collection_estimator =
69 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
70
|
29 #include "gc_implementation/shared/gcPolicyCounters.hpp"
30 #include "gc_interface/gcCause.hpp"
31 #include "memory/collectorPolicy.hpp"
32 #include "runtime/timer.hpp"
33 #include "utilities/top.hpp"
34
35 #include <math.h>
36
37 PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size,
38 size_t init_promo_size,
39 size_t init_survivor_size,
40 size_t intra_generation_alignment,
41 double gc_pause_goal_sec,
42 double gc_minor_pause_goal_sec,
43 uint gc_cost_ratio) :
44 AdaptiveSizePolicy(init_eden_size,
45 init_promo_size,
46 init_survivor_size,
47 gc_pause_goal_sec,
48 gc_cost_ratio),
49 _collection_cost_margin_fraction(AdaptiveSizePolicyCollectionCostMargin / 100.0),
50 _intra_generation_alignment(intra_generation_alignment),
51 _live_at_last_full_gc(init_promo_size),
52 _gc_minor_pause_goal_sec(gc_minor_pause_goal_sec),
53 _latest_major_mutator_interval_seconds(0),
54 _young_gen_change_for_major_pause_count(0)
55 {
56 // Sizing policy statistics
57 _avg_major_pause =
58 new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding);
59 _avg_minor_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
60 _avg_major_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
61
62 _avg_base_footprint = new AdaptiveWeightedAverage(AdaptiveSizePolicyWeight);
63 _major_pause_old_estimator =
64 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
65 _major_pause_young_estimator =
66 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
67 _major_collection_estimator =
68 new LinearLeastSquareFit(AdaptiveSizePolicyWeight);
69
|