113 _major_gc_manager->set_num_gc_threads(count);
114 }
115
116 // All memory pools and memory managers are initialized.
117 //
118 _minor_gc_manager->initialize_gc_stat_info();
119 _major_gc_manager->initialize_gc_stat_info();
120 }
121
122 // Add memory pools for GenCollectedHeap
123 // This function currently only supports two generations collected heap.
124 // The collector for GenCollectedHeap will have two memory managers.
125 void MemoryService::add_gen_collected_heap_info(GenCollectedHeap* heap) {
126 CollectorPolicy* policy = heap->collector_policy();
127
128 assert(policy->is_generation_policy(), "Only support two generations");
129 guarantee(heap->n_gens() == 2, "Only support two-generation heap");
130
131 GenCollectorPolicy* gen_policy = policy->as_generation_policy();
132 if (gen_policy != NULL) {
133 GenerationSpec** specs = gen_policy->generations();
134 Generation::Name kind = specs[0]->name();
135 switch (kind) {
136 case Generation::DefNew:
137 _minor_gc_manager = MemoryManager::get_copy_memory_manager();
138 break;
139 #if INCLUDE_ALL_GCS
140 case Generation::ParNew:
141 _minor_gc_manager = MemoryManager::get_parnew_memory_manager();
142 break;
143 #endif // INCLUDE_ALL_GCS
144 default:
145 guarantee(false, "Unrecognized generation spec");
146 break;
147 }
148 if (policy->is_mark_sweep_policy()) {
149 _major_gc_manager = MemoryManager::get_msc_memory_manager();
150 #if INCLUDE_ALL_GCS
151 } else if (policy->is_concurrent_mark_sweep_policy()) {
152 _major_gc_manager = MemoryManager::get_cms_memory_manager();
153 #endif // INCLUDE_ALL_GCS
154 } else {
|
113 _major_gc_manager->set_num_gc_threads(count);
114 }
115
116 // All memory pools and memory managers are initialized.
117 //
118 _minor_gc_manager->initialize_gc_stat_info();
119 _major_gc_manager->initialize_gc_stat_info();
120 }
121
122 // Add memory pools for GenCollectedHeap
123 // This function currently only supports two generations collected heap.
124 // The collector for GenCollectedHeap will have two memory managers.
125 void MemoryService::add_gen_collected_heap_info(GenCollectedHeap* heap) {
126 CollectorPolicy* policy = heap->collector_policy();
127
128 assert(policy->is_generation_policy(), "Only support two generations");
129 guarantee(heap->n_gens() == 2, "Only support two-generation heap");
130
131 GenCollectorPolicy* gen_policy = policy->as_generation_policy();
132 if (gen_policy != NULL) {
133 Generation::Name kind = gen_policy->young_gen_spec()->name();
134 switch (kind) {
135 case Generation::DefNew:
136 _minor_gc_manager = MemoryManager::get_copy_memory_manager();
137 break;
138 #if INCLUDE_ALL_GCS
139 case Generation::ParNew:
140 _minor_gc_manager = MemoryManager::get_parnew_memory_manager();
141 break;
142 #endif // INCLUDE_ALL_GCS
143 default:
144 guarantee(false, "Unrecognized generation spec");
145 break;
146 }
147 if (policy->is_mark_sweep_policy()) {
148 _major_gc_manager = MemoryManager::get_msc_memory_manager();
149 #if INCLUDE_ALL_GCS
150 } else if (policy->is_concurrent_mark_sweep_policy()) {
151 _major_gc_manager = MemoryManager::get_cms_memory_manager();
152 #endif // INCLUDE_ALL_GCS
153 } else {
|