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;