< prev index next >
src/hotspot/share/gc/shared/adaptiveSizePolicy.cpp
Print this page
rev 52963 : 8212206: Refactor AdaptiveSizePolicy to separate out code related to GC overhead
Summary: Move check_gc_overhead_limit() and related code to its own class
Reviewed-by:
@@ -51,12 +51,10 @@
_latest_minor_mutator_interval_seconds(0),
_threshold_tolerance_percent(1.0 + ThresholdTolerance/100.0),
_gc_pause_goal_sec(gc_pause_goal_sec),
_young_gen_change_for_minor_throughput(0),
_old_gen_change_for_major_throughput(0) {
- assert(AdaptiveSizePolicyGCTimeLimitThreshold > 0,
- "No opportunity to clear SoftReferences before GC overhead limit");
_avg_minor_pause =
new AdaptivePaddedAverage(AdaptiveTimeWeight, PausePadding);
_avg_minor_interval = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
_avg_minor_gc_cost = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
_avg_major_gc_cost = new AdaptiveWeightedAverage(AdaptiveTimeWeight);
@@ -271,11 +269,11 @@
set_change_young_gen_for_throughput(0);
set_decrease_for_footprint(0);
set_decide_at_full_gc(0);
}
-class AdaptiveSizePolicyTimeOverheadTester: public OverheadTester {
+class AdaptiveSizePolicyTimeOverheadTester: public GCOverheadTester {
double _gc_cost;
public:
AdaptiveSizePolicyTimeOverheadTester(double gc_cost) : _gc_cost(gc_cost) {}
@@ -287,11 +285,11 @@
// tenured gen.
return _gc_cost > (GCTimeLimit / 100.0);
}
};
-class AdaptiveSizePolicySpaceOverheadTester: public OverheadTester {
+class AdaptiveSizePolicySpaceOverheadTester: public GCOverheadTester {
size_t _eden_live;
size_t _max_old_gen_size;
size_t _max_eden_size;
size_t _promo_size;
double _avg_eden_live;
@@ -357,11 +355,10 @@
(size_t)mem_free_limit);
return free_in_old_gen < (size_t)mem_free_old_limit &&
free_in_eden < (size_t)mem_free_eden_limit;
}
-
};
void AdaptiveSizePolicy::check_gc_overhead_limit(
size_t eden_live,
size_t max_old_gen_size,
< prev index next >