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();
|