109 heap->gc_threads_do(&gctcc);
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 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();
|
109 heap->gc_threads_do(&gctcc);
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();
|