src/share/vm/services/memoryService.hpp

Print this page
rev 4735 : 8013590: NPG: Add a memory pool MXBean for Metaspace


  56     init_managers_list_size = 5
  57   };
  58 
  59   // index for minor and major generations
  60   enum {
  61     minor = 0,
  62     major = 1,
  63     n_gens = 2
  64   };
  65 
  66   static GrowableArray<MemoryPool*>*    _pools_list;
  67   static GrowableArray<MemoryManager*>* _managers_list;
  68 
  69   // memory managers for minor and major GC statistics
  70   static GCMemoryManager*               _major_gc_manager;
  71   static GCMemoryManager*               _minor_gc_manager;
  72 
  73   // Code heap memory pool
  74   static MemoryPool*                    _code_heap_pool;
  75 



  76   static void add_generation_memory_pool(Generation* gen,
  77                                          MemoryManager* major_mgr,
  78                                          MemoryManager* minor_mgr);
  79   static void add_generation_memory_pool(Generation* gen,
  80                                          MemoryManager* major_mgr) {
  81     add_generation_memory_pool(gen, major_mgr, NULL);
  82   }
  83 
  84 
  85   static void add_psYoung_memory_pool(PSYoungGen* gen,
  86                                       MemoryManager* major_mgr,
  87                                       MemoryManager* minor_mgr);
  88   static void add_psOld_memory_pool(PSOldGen* gen,
  89                                     MemoryManager* mgr);
  90 
  91   static void add_g1YoungGen_memory_pool(G1CollectedHeap* g1h,
  92                                          MemoryManager* major_mgr,
  93                                          MemoryManager* minor_mgr);
  94   static void add_g1OldGen_memory_pool(G1CollectedHeap* g1h,
  95                                        MemoryManager* mgr);


 104                                          bool is_heap,
 105                                          size_t max_size,
 106                                          bool support_usage_threshold);
 107   static MemoryPool* add_gen(Generation* gen,
 108                              const char* name,
 109                              bool is_heap,
 110                              bool support_usage_threshold);
 111   static MemoryPool* add_cms_space(CompactibleFreeListSpace* space,
 112                                    const char* name,
 113                                    bool is_heap,
 114                                    size_t max_size,
 115                                    bool support_usage_threshold);
 116 
 117   static void add_gen_collected_heap_info(GenCollectedHeap* heap);
 118   static void add_parallel_scavenge_heap_info(ParallelScavengeHeap* heap);
 119   static void add_g1_heap_info(G1CollectedHeap* g1h);
 120 
 121 public:
 122   static void set_universe_heap(CollectedHeap* heap);
 123   static void add_code_heap_memory_pool(CodeHeap* heap);

 124 
 125   static MemoryPool*    get_memory_pool(instanceHandle pool);
 126   static MemoryManager* get_memory_manager(instanceHandle mgr);
 127 
 128   static const int num_memory_pools() {
 129     return _pools_list->length();
 130   }
 131   static const int num_memory_managers() {
 132     return _managers_list->length();
 133   }
 134 
 135   static MemoryPool* get_memory_pool(int index) {
 136     return _pools_list->at(index);
 137   }
 138 
 139   static MemoryManager* get_memory_manager(int index) {
 140     return _managers_list->at(index);
 141   }
 142 
 143   static void track_memory_usage();




  56     init_managers_list_size = 5
  57   };
  58 
  59   // index for minor and major generations
  60   enum {
  61     minor = 0,
  62     major = 1,
  63     n_gens = 2
  64   };
  65 
  66   static GrowableArray<MemoryPool*>*    _pools_list;
  67   static GrowableArray<MemoryManager*>* _managers_list;
  68 
  69   // memory managers for minor and major GC statistics
  70   static GCMemoryManager*               _major_gc_manager;
  71   static GCMemoryManager*               _minor_gc_manager;
  72 
  73   // Code heap memory pool
  74   static MemoryPool*                    _code_heap_pool;
  75 
  76   static MemoryPool*                    _metaspace_pool;
  77   static MemoryPool*                    _cks_pool;
  78 
  79   static void add_generation_memory_pool(Generation* gen,
  80                                          MemoryManager* major_mgr,
  81                                          MemoryManager* minor_mgr);
  82   static void add_generation_memory_pool(Generation* gen,
  83                                          MemoryManager* major_mgr) {
  84     add_generation_memory_pool(gen, major_mgr, NULL);
  85   }
  86 
  87 
  88   static void add_psYoung_memory_pool(PSYoungGen* gen,
  89                                       MemoryManager* major_mgr,
  90                                       MemoryManager* minor_mgr);
  91   static void add_psOld_memory_pool(PSOldGen* gen,
  92                                     MemoryManager* mgr);
  93 
  94   static void add_g1YoungGen_memory_pool(G1CollectedHeap* g1h,
  95                                          MemoryManager* major_mgr,
  96                                          MemoryManager* minor_mgr);
  97   static void add_g1OldGen_memory_pool(G1CollectedHeap* g1h,
  98                                        MemoryManager* mgr);


 107                                          bool is_heap,
 108                                          size_t max_size,
 109                                          bool support_usage_threshold);
 110   static MemoryPool* add_gen(Generation* gen,
 111                              const char* name,
 112                              bool is_heap,
 113                              bool support_usage_threshold);
 114   static MemoryPool* add_cms_space(CompactibleFreeListSpace* space,
 115                                    const char* name,
 116                                    bool is_heap,
 117                                    size_t max_size,
 118                                    bool support_usage_threshold);
 119 
 120   static void add_gen_collected_heap_info(GenCollectedHeap* heap);
 121   static void add_parallel_scavenge_heap_info(ParallelScavengeHeap* heap);
 122   static void add_g1_heap_info(G1CollectedHeap* g1h);
 123 
 124 public:
 125   static void set_universe_heap(CollectedHeap* heap);
 126   static void add_code_heap_memory_pool(CodeHeap* heap);
 127   static void add_metaspace_memory_pools();
 128 
 129   static MemoryPool*    get_memory_pool(instanceHandle pool);
 130   static MemoryManager* get_memory_manager(instanceHandle mgr);
 131 
 132   static const int num_memory_pools() {
 133     return _pools_list->length();
 134   }
 135   static const int num_memory_managers() {
 136     return _managers_list->length();
 137   }
 138 
 139   static MemoryPool* get_memory_pool(int index) {
 140     return _pools_list->at(index);
 141   }
 142 
 143   static MemoryManager* get_memory_manager(int index) {
 144     return _managers_list->at(index);
 145   }
 146 
 147   static void track_memory_usage();