src/share/vm/services/memoryService.cpp
Print this page
rev 4735 : 8013590: NPG: Add a memory pool MXBean for Metaspace
*** 33,42 ****
--- 33,43 ----
#include "memory/generationSpec.hpp"
#include "memory/heap.hpp"
#include "memory/memRegion.hpp"
#include "memory/tenuredGeneration.hpp"
#include "oops/oop.inline.hpp"
+ #include "runtime/globals.hpp"
#include "runtime/javaCalls.hpp"
#include "services/classLoadingService.hpp"
#include "services/lowMemoryDetector.hpp"
#include "services/management.hpp"
#include "services/memoryManager.hpp"
*** 61,70 ****
--- 62,73 ----
new (ResourceObj::C_HEAP, mtInternal) GrowableArray<MemoryManager*>(init_managers_list_size, true);
GCMemoryManager* MemoryService::_minor_gc_manager = NULL;
GCMemoryManager* MemoryService::_major_gc_manager = NULL;
MemoryPool* MemoryService::_code_heap_pool = NULL;
+ MemoryPool* MemoryService::_metaspace_pool = NULL;
+ MemoryPool* MemoryService::_cks_pool = NULL;
class GcThreadCountClosure: public ThreadClosure {
private:
int _count;
public:
*** 397,406 ****
--- 400,427 ----
_pools_list->append(_code_heap_pool);
_managers_list->append(mgr);
}
+ void MemoryService::add_metaspace_memory_pools() {
+ MemoryManager* mgr = MemoryManager::get_metaspace_memory_manager();
+
+ _metaspace_pool = new MetaspacePool();
+ mgr->add_pool(_metaspace_pool);
+ _pools_list->append(_metaspace_pool);
+
+ if (UseCompressedKlassPointers) {
+ _cks_pool = new CompressedKlassSpacePool();
+ } else {
+ _cks_pool = new EmptyCompressedKlassSpacePool();
+ }
+ mgr->add_pool(_cks_pool);
+ _pools_list->append(_cks_pool);
+
+ _managers_list->append(mgr);
+ }
+
MemoryManager* MemoryService::get_memory_manager(instanceHandle mh) {
for (int i = 0; i < _managers_list->length(); i++) {
MemoryManager* mgr = _managers_list->at(i);
if (mgr->is_manager(mh)) {
return mgr;