73 _bytes_allocated_in_old_since_last_gc(0),
74 _initial_mark_to_mixed(),
75 _collection_set(NULL),
76 _bytes_copied_during_gc(0),
77 _g1h(NULL),
78 _phase_times(new G1GCPhaseTimes(gc_timer, ParallelGCThreads)),
79 _mark_remark_start_sec(0),
80 _mark_cleanup_start_sec(0),
81 _tenuring_threshold(MaxTenuringThreshold),
82 _max_survivor_regions(0),
83 _survivors_age_table(true)
84 {
85 }
86
87 G1Policy::~G1Policy() {
88 delete _ihop_control;
89 delete _young_gen_sizer;
90 }
91
92 G1Policy* G1Policy::create_policy(G1CollectorPolicy* policy, STWGCTimer* gc_timer_stw) {
93 if (policy->is_hetero_heap()) {
94 return new G1HeterogeneousHeapPolicy(policy, gc_timer_stw);
95 } else {
96 return new G1Policy(policy, gc_timer_stw);
97 }
98 }
99
100 G1CollectorState* G1Policy::collector_state() const { return _g1h->collector_state(); }
101
102 void G1Policy::init(G1CollectedHeap* g1h, G1CollectionSet* collection_set) {
103 _g1h = g1h;
104 _collection_set = collection_set;
105
106 assert(Heap_lock->owned_by_self(), "Locking discipline.");
107
108 if (!adaptive_young_list_length()) {
109 _young_list_fixed_length = _young_gen_sizer->min_desired_young_length();
110 }
111 _young_gen_sizer->adjust_max_new_size(_g1h->max_expandable_regions());
112
113 _free_regions_at_end_of_collection = _g1h->num_free_regions();
|
73 _bytes_allocated_in_old_since_last_gc(0),
74 _initial_mark_to_mixed(),
75 _collection_set(NULL),
76 _bytes_copied_during_gc(0),
77 _g1h(NULL),
78 _phase_times(new G1GCPhaseTimes(gc_timer, ParallelGCThreads)),
79 _mark_remark_start_sec(0),
80 _mark_cleanup_start_sec(0),
81 _tenuring_threshold(MaxTenuringThreshold),
82 _max_survivor_regions(0),
83 _survivors_age_table(true)
84 {
85 }
86
87 G1Policy::~G1Policy() {
88 delete _ihop_control;
89 delete _young_gen_sizer;
90 }
91
92 G1Policy* G1Policy::create_policy(G1CollectorPolicy* policy, STWGCTimer* gc_timer_stw) {
93 if (policy->is_heterogeneous_heap()) {
94 return new G1HeterogeneousHeapPolicy(policy, gc_timer_stw);
95 } else {
96 return new G1Policy(policy, gc_timer_stw);
97 }
98 }
99
100 G1CollectorState* G1Policy::collector_state() const { return _g1h->collector_state(); }
101
102 void G1Policy::init(G1CollectedHeap* g1h, G1CollectionSet* collection_set) {
103 _g1h = g1h;
104 _collection_set = collection_set;
105
106 assert(Heap_lock->owned_by_self(), "Locking discipline.");
107
108 if (!adaptive_young_list_length()) {
109 _young_list_fixed_length = _young_gen_sizer->min_desired_young_length();
110 }
111 _young_gen_sizer->adjust_max_new_size(_g1h->max_expandable_regions());
112
113 _free_regions_at_end_of_collection = _g1h->num_free_regions();
|