110 int count = gctcc.count();
111 if (count > 0) {
112 _minor_gc_manager->set_num_gc_threads(count);
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 GenCollectorPolicy* gen_policy = policy->as_generation_policy();
130 guarantee(gen_policy->number_of_generations() == 2, "Only support two-generation heap");
131 if (gen_policy != NULL) {
132 Generation::Name kind = gen_policy->young_gen_spec()->name();
133 switch (kind) {
134 case Generation::DefNew:
135 _minor_gc_manager = MemoryManager::get_copy_memory_manager();
136 break;
137 #if INCLUDE_ALL_GCS
138 case Generation::ParNew:
139 _minor_gc_manager = MemoryManager::get_parnew_memory_manager();
140 break;
141 #endif // INCLUDE_ALL_GCS
142 default:
143 guarantee(false, "Unrecognized generation spec");
144 break;
145 }
146 if (policy->is_mark_sweep_policy()) {
147 _major_gc_manager = MemoryManager::get_msc_memory_manager();
148 #if INCLUDE_ALL_GCS
149 } else if (policy->is_concurrent_mark_sweep_policy()) {
150 _major_gc_manager = MemoryManager::get_cms_memory_manager();
|
110 int count = gctcc.count();
111 if (count > 0) {
112 _minor_gc_manager->set_num_gc_threads(count);
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 GenCollectorPolicy* gen_policy = policy->as_generation_policy();
130 if (gen_policy != NULL) {
131 Generation::Name kind = gen_policy->young_gen_spec()->name();
132 switch (kind) {
133 case Generation::DefNew:
134 _minor_gc_manager = MemoryManager::get_copy_memory_manager();
135 break;
136 #if INCLUDE_ALL_GCS
137 case Generation::ParNew:
138 _minor_gc_manager = MemoryManager::get_parnew_memory_manager();
139 break;
140 #endif // INCLUDE_ALL_GCS
141 default:
142 guarantee(false, "Unrecognized generation spec");
143 break;
144 }
145 if (policy->is_mark_sweep_policy()) {
146 _major_gc_manager = MemoryManager::get_msc_memory_manager();
147 #if INCLUDE_ALL_GCS
148 } else if (policy->is_concurrent_mark_sweep_policy()) {
149 _major_gc_manager = MemoryManager::get_cms_memory_manager();
|