src/share/vm/services/memoryManager.hpp

Print this page
rev 4165 : 8000754: NPG: Implement a MemoryPool MXBean for Metaspace

@@ -54,10 +54,11 @@
 
 public:
   enum Name {
     Abstract,
     CodeCache,
+    Metaspace,
     Copy,
     MarkSweepCompact,
     ParNew,
     ConcurrentMarkSweep,
     PSScavenge,

@@ -86,10 +87,11 @@
   // GC support
   void oops_do(OopClosure* f);
 
   // Static factory methods to get a memory manager of a specific type
   static MemoryManager*   get_code_cache_memory_manager();
+  static MemoryManager*   get_metaspace_memory_manager();
   static GCMemoryManager* get_copy_memory_manager();
   static GCMemoryManager* get_msc_memory_manager();
   static GCMemoryManager* get_parnew_memory_manager();
   static GCMemoryManager* get_cms_memory_manager();
   static GCMemoryManager* get_psScavenge_memory_manager();

@@ -106,10 +108,18 @@
 
   MemoryManager::Name kind() { return MemoryManager::CodeCache; }
   const char* name()         { return "CodeCacheManager"; }
 };
 
+class MetaspaceMemoryManager : public MemoryManager {
+public:
+  MetaspaceMemoryManager() : MemoryManager() {}
+
+  MemoryManager::Name kind() { return MemoryManager::Metaspace; }
+  const char *name()         { return "MetaspaceManager"; }
+};
+
 class GCStatInfo : public ResourceObj {
 private:
   size_t _index;
   jlong  _start_time;
   jlong  _end_time;