28 #include "gc/g1/g1CollectorState.hpp"
29 #include "gc/g1/g1GCPhaseTimes.hpp"
30 #include "gc/g1/g1HeapRegionAttr.hpp"
31 #include "gc/g1/g1InitialMarkToMixedTimeTracker.hpp"
32 #include "gc/g1/g1MMUTracker.hpp"
33 #include "gc/g1/g1RemSetTrackingPolicy.hpp"
34 #include "gc/g1/g1Predictions.hpp"
35 #include "gc/g1/g1YoungGenSizer.hpp"
36 #include "gc/shared/gcCause.hpp"
37 #include "utilities/pair.hpp"
38
39 // A G1Policy makes policy decisions that determine the
40 // characteristics of the collector. Examples include:
41 // * choice of collection set.
42 // * when to collect.
43
44 class HeapRegion;
45 class G1CollectionSet;
46 class G1CollectionSetCandidates;
47 class G1CollectionSetChooser;
48 class G1IHOPControl;
49 class G1Analytics;
50 class G1SurvivorRegions;
51 class G1YoungGenSizer;
52 class GCPolicyCounters;
53 class STWGCTimer;
54
55 class G1Policy: public CHeapObj<mtGC> {
56 private:
57
58 static G1IHOPControl* create_ihop_control(const G1Predictions* predictor);
59 // Update the IHOP control with necessary statistics.
60 void update_ihop_prediction(double mutator_time_s,
61 size_t mutator_alloc_bytes,
62 size_t young_gen_size,
63 bool this_gc_was_young_only);
64 void report_ihop_statistics();
65
66 G1Predictions _predictor;
67 G1Analytics* _analytics;
68 G1RemSetTrackingPolicy _remset_tracker;
69 G1MMUTracker* _mmu_tracker;
70 G1IHOPControl* _ihop_control;
71
72 GCPolicyCounters* _policy_counters;
73
74 double _full_collection_start_sec;
75
|
28 #include "gc/g1/g1CollectorState.hpp"
29 #include "gc/g1/g1GCPhaseTimes.hpp"
30 #include "gc/g1/g1HeapRegionAttr.hpp"
31 #include "gc/g1/g1InitialMarkToMixedTimeTracker.hpp"
32 #include "gc/g1/g1MMUTracker.hpp"
33 #include "gc/g1/g1RemSetTrackingPolicy.hpp"
34 #include "gc/g1/g1Predictions.hpp"
35 #include "gc/g1/g1YoungGenSizer.hpp"
36 #include "gc/shared/gcCause.hpp"
37 #include "utilities/pair.hpp"
38
39 // A G1Policy makes policy decisions that determine the
40 // characteristics of the collector. Examples include:
41 // * choice of collection set.
42 // * when to collect.
43
44 class HeapRegion;
45 class G1CollectionSet;
46 class G1CollectionSetCandidates;
47 class G1CollectionSetChooser;
48 class G1HeapSizingPolicy;
49 class G1IHOPControl;
50 class G1Analytics;
51 class G1SurvivorRegions;
52 class G1YoungGenSizer;
53 class GCPolicyCounters;
54 class STWGCTimer;
55
56 class G1Policy: public CHeapObj<mtGC> {
57 friend class G1HeapSizingPolicy;
58 private:
59
60 static G1IHOPControl* create_ihop_control(const G1Predictions* predictor);
61 // Update the IHOP control with necessary statistics.
62 void update_ihop_prediction(double mutator_time_s,
63 size_t mutator_alloc_bytes,
64 size_t young_gen_size,
65 bool this_gc_was_young_only);
66 void report_ihop_statistics();
67
68 G1Predictions _predictor;
69 G1Analytics* _analytics;
70 G1RemSetTrackingPolicy _remset_tracker;
71 G1MMUTracker* _mmu_tracker;
72 G1IHOPControl* _ihop_control;
73
74 GCPolicyCounters* _policy_counters;
75
76 double _full_collection_start_sec;
77
|