src/share/vm/services/memoryService.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/services

src/share/vm/services/memoryService.cpp

Print this page
rev 6345 : 8027643: Merge GenCollectorPolicy and TwoGenerationCollectorPolicy
Summary: Merged the two calsses GenCollectorPolicy and TwoGenerationCollectorPolicy
Reviewed-by:


 106   GcThreadCountClosure gctcc;
 107   heap->gc_threads_do(&gctcc);
 108   int count = gctcc.count();
 109   if (count > 0) {
 110     _minor_gc_manager->set_num_gc_threads(count);
 111     _major_gc_manager->set_num_gc_threads(count);
 112   }
 113 
 114   // All memory pools and memory managers are initialized.
 115   //
 116   _minor_gc_manager->initialize_gc_stat_info();
 117   _major_gc_manager->initialize_gc_stat_info();
 118 }
 119 
 120 // Add memory pools for GenCollectedHeap
 121 // This function currently only supports two generations collected heap.
 122 // The collector for GenCollectedHeap will have two memory managers.
 123 void MemoryService::add_gen_collected_heap_info(GenCollectedHeap* heap) {
 124   CollectorPolicy* policy = heap->collector_policy();
 125 
 126   assert(policy->is_two_generation_policy(), "Only support two generations");
 127   guarantee(heap->n_gens() == 2, "Only support two-generation heap");
 128 
 129   TwoGenerationCollectorPolicy* two_gen_policy = policy->as_two_generation_policy();
 130   if (two_gen_policy != NULL) {
 131     GenerationSpec** specs = two_gen_policy->generations();
 132     Generation::Name kind = specs[0]->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       case Generation::ASParNew:
 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();




 106   GcThreadCountClosure gctcc;
 107   heap->gc_threads_do(&gctcc);
 108   int count = gctcc.count();
 109   if (count > 0) {
 110     _minor_gc_manager->set_num_gc_threads(count);
 111     _major_gc_manager->set_num_gc_threads(count);
 112   }
 113 
 114   // All memory pools and memory managers are initialized.
 115   //
 116   _minor_gc_manager->initialize_gc_stat_info();
 117   _major_gc_manager->initialize_gc_stat_info();
 118 }
 119 
 120 // Add memory pools for GenCollectedHeap
 121 // This function currently only supports two generations collected heap.
 122 // The collector for GenCollectedHeap will have two memory managers.
 123 void MemoryService::add_gen_collected_heap_info(GenCollectedHeap* heap) {
 124   CollectorPolicy* policy = heap->collector_policy();
 125 
 126   assert(policy->is_generation_policy(), "Only support two generations");
 127   guarantee(heap->n_gens() == 2, "Only support two-generation heap");
 128 
 129   GenCollectorPolicy* gen_policy = policy->as_generation_policy();
 130   if (gen_policy != NULL) {
 131     GenerationSpec** specs = gen_policy->generations();
 132     Generation::Name kind = specs[0]->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       case Generation::ASParNew:
 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();


src/share/vm/services/memoryService.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File