< prev index next >

src/share/vm/services/memoryManager.hpp

Print this page




  46     max_num_pools = 10
  47   };
  48 
  49   MemoryPool* _pools[max_num_pools];
  50   int         _num_pools;
  51 
  52 protected:
  53   volatile instanceOop _memory_mgr_obj;
  54 
  55 public:
  56   MemoryManager();
  57 
  58   int num_memory_pools() const           { return _num_pools; }
  59   MemoryPool* get_memory_pool(int index) {
  60     assert(index >= 0 && index < _num_pools, "Invalid index");
  61     return _pools[index];
  62   }
  63 
  64   void add_pool(MemoryPool* pool);
  65 
  66   bool is_manager(instanceHandle mh)     { return mh() == _memory_mgr_obj; }
  67 
  68   virtual instanceOop get_memory_manager_instance(TRAPS);
  69   virtual bool is_gc_memory_manager()    { return false; }
  70   virtual const char* name() = 0;
  71 
  72   // GC support
  73   void oops_do(OopClosure* f);
  74 
  75   // Static factory methods to get a memory manager of a specific type
  76   static MemoryManager*   get_code_cache_memory_manager();
  77   static MemoryManager*   get_metaspace_memory_manager();
  78   static GCMemoryManager* get_copy_memory_manager();
  79   static GCMemoryManager* get_msc_memory_manager();
  80   static GCMemoryManager* get_parnew_memory_manager();
  81   static GCMemoryManager* get_cms_memory_manager();
  82   static GCMemoryManager* get_psScavenge_memory_manager();
  83   static GCMemoryManager* get_psMarkSweep_memory_manager();
  84   static GCMemoryManager* get_g1YoungGen_memory_manager();
  85   static GCMemoryManager* get_g1OldGen_memory_manager();

  86 };
  87 
  88 class CodeCacheMemoryManager : public MemoryManager {
  89 private:
  90 public:
  91   CodeCacheMemoryManager() : MemoryManager() {}
  92 
  93   const char* name() { return "CodeCacheManager"; }
  94 };
  95 
  96 class MetaspaceMemoryManager : public MemoryManager {
  97 public:
  98   MetaspaceMemoryManager() : MemoryManager() {}
  99 
 100   const char* name() { return "Metaspace Manager"; }
 101 };
 102 
 103 class GCStatInfo : public ResourceObj {
 104 private:
 105   size_t _index;


 234 public:
 235   PSMarkSweepMemoryManager() : GCMemoryManager() {}
 236 
 237   const char* name() { return "PS MarkSweep"; }
 238 };
 239 
 240 class G1YoungGenMemoryManager : public GCMemoryManager {
 241 private:
 242 public:
 243   G1YoungGenMemoryManager() : GCMemoryManager() {}
 244 
 245   const char* name() { return "G1 Young Generation"; }
 246 };
 247 
 248 class G1OldGenMemoryManager : public GCMemoryManager {
 249 private:
 250 public:
 251   G1OldGenMemoryManager() : GCMemoryManager() {}
 252 
 253   const char* name() { return "G1 Old Generation"; }









 254 };
 255 
 256 #endif // SHARE_VM_SERVICES_MEMORYMANAGER_HPP


  46     max_num_pools = 10
  47   };
  48 
  49   MemoryPool* _pools[max_num_pools];
  50   int         _num_pools;
  51 
  52 protected:
  53   volatile instanceOop _memory_mgr_obj;
  54 
  55 public:
  56   MemoryManager();
  57 
  58   int num_memory_pools() const           { return _num_pools; }
  59   MemoryPool* get_memory_pool(int index) {
  60     assert(index >= 0 && index < _num_pools, "Invalid index");
  61     return _pools[index];
  62   }
  63 
  64   void add_pool(MemoryPool* pool);
  65 
  66   bool is_manager(instanceHandle mh)     { return oopDesc::bs()->write_barrier(mh()) == oopDesc::bs()->write_barrier(_memory_mgr_obj); }
  67 
  68   virtual instanceOop get_memory_manager_instance(TRAPS);
  69   virtual bool is_gc_memory_manager()    { return false; }
  70   virtual const char* name() = 0;
  71 
  72   // GC support
  73   void oops_do(OopClosure* f);
  74 
  75   // Static factory methods to get a memory manager of a specific type
  76   static MemoryManager*   get_code_cache_memory_manager();
  77   static MemoryManager*   get_metaspace_memory_manager();
  78   static GCMemoryManager* get_copy_memory_manager();
  79   static GCMemoryManager* get_msc_memory_manager();
  80   static GCMemoryManager* get_parnew_memory_manager();
  81   static GCMemoryManager* get_cms_memory_manager();
  82   static GCMemoryManager* get_psScavenge_memory_manager();
  83   static GCMemoryManager* get_psMarkSweep_memory_manager();
  84   static GCMemoryManager* get_g1YoungGen_memory_manager();
  85   static GCMemoryManager* get_g1OldGen_memory_manager();
  86   static GCMemoryManager* get_shenandoah_memory_manager();
  87 };
  88 
  89 class CodeCacheMemoryManager : public MemoryManager {
  90 private:
  91 public:
  92   CodeCacheMemoryManager() : MemoryManager() {}
  93 
  94   const char* name() { return "CodeCacheManager"; }
  95 };
  96 
  97 class MetaspaceMemoryManager : public MemoryManager {
  98 public:
  99   MetaspaceMemoryManager() : MemoryManager() {}
 100 
 101   const char* name() { return "Metaspace Manager"; }
 102 };
 103 
 104 class GCStatInfo : public ResourceObj {
 105 private:
 106   size_t _index;


 235 public:
 236   PSMarkSweepMemoryManager() : GCMemoryManager() {}
 237 
 238   const char* name() { return "PS MarkSweep"; }
 239 };
 240 
 241 class G1YoungGenMemoryManager : public GCMemoryManager {
 242 private:
 243 public:
 244   G1YoungGenMemoryManager() : GCMemoryManager() {}
 245 
 246   const char* name() { return "G1 Young Generation"; }
 247 };
 248 
 249 class G1OldGenMemoryManager : public GCMemoryManager {
 250 private:
 251 public:
 252   G1OldGenMemoryManager() : GCMemoryManager() {}
 253 
 254   const char* name() { return "G1 Old Generation"; }
 255 };
 256 
 257 class ShenandoahMemoryManager : public GCMemoryManager {
 258 private:
 259 public:
 260   ShenandoahMemoryManager() : GCMemoryManager() {}
 261 
 262   const char* name()         { return "Shenandoah";}
 263 
 264 };
 265 
 266 #endif // SHARE_VM_SERVICES_MEMORYMANAGER_HPP
< prev index next >