< prev index next >

src/share/vm/services/memoryManager.hpp

Print this page
rev 8396 : imported patch epsilon-base


  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   enum Name {
  57     Abstract,
  58     CodeCache,
  59     Metaspace,
  60     Copy,
  61     MarkSweepCompact,
  62     ParNew,
  63     ConcurrentMarkSweep,
  64     PSScavenge,
  65     PSMarkSweep,
  66     G1YoungGen,
  67     G1OldGen

  68   };
  69 
  70   MemoryManager();
  71 
  72   int num_memory_pools() const           { return _num_pools; }
  73   MemoryPool* get_memory_pool(int index) {
  74     assert(index >= 0 && index < _num_pools, "Invalid index");
  75     return _pools[index];
  76   }
  77 
  78   void add_pool(MemoryPool* pool);
  79 
  80   bool is_manager(instanceHandle mh)     { return mh() == _memory_mgr_obj; }
  81 
  82   virtual instanceOop get_memory_manager_instance(TRAPS);
  83   virtual MemoryManager::Name kind()     { return MemoryManager::Abstract; }
  84   virtual bool is_gc_memory_manager()    { return false; }
  85   virtual const char* name() = 0;
  86 
  87   // GC support
  88   void oops_do(OopClosure* f);
  89 
  90   // Static factory methods to get a memory manager of a specific type
  91   static MemoryManager*   get_code_cache_memory_manager();
  92   static MemoryManager*   get_metaspace_memory_manager();
  93   static GCMemoryManager* get_copy_memory_manager();
  94   static GCMemoryManager* get_msc_memory_manager();
  95   static GCMemoryManager* get_parnew_memory_manager();
  96   static GCMemoryManager* get_cms_memory_manager();
  97   static GCMemoryManager* get_psScavenge_memory_manager();
  98   static GCMemoryManager* get_psMarkSweep_memory_manager();
  99   static GCMemoryManager* get_g1YoungGen_memory_manager();
 100   static GCMemoryManager* get_g1OldGen_memory_manager();
 101 
 102 };
 103 
 104 class CodeCacheMemoryManager : public MemoryManager {
 105 private:
 106 public:
 107   CodeCacheMemoryManager() : MemoryManager() {}
 108 
 109   MemoryManager::Name kind() { return MemoryManager::CodeCache; }
 110   const char* name()         { return "CodeCacheManager"; }
 111 };
 112 
 113 class MetaspaceMemoryManager : public MemoryManager {
 114 public:
 115   MetaspaceMemoryManager() : MemoryManager() {}
 116 
 117   MemoryManager::Name kind() { return MemoryManager::Metaspace; }
 118   const char *name()         { return "Metaspace Manager"; }
 119 };
 120 
 121 class GCStatInfo : public ResourceObj {


 265   MemoryManager::Name kind() { return MemoryManager::PSMarkSweep; }
 266   const char* name()         { return "PS MarkSweep"; }
 267 };
 268 
 269 class G1YoungGenMemoryManager : public GCMemoryManager {
 270 private:
 271 public:
 272   G1YoungGenMemoryManager() : GCMemoryManager() {}
 273 
 274   MemoryManager::Name kind() { return MemoryManager::G1YoungGen; }
 275   const char* name()         { return "G1 Young Generation"; }
 276 };
 277 
 278 class G1OldGenMemoryManager : public GCMemoryManager {
 279 private:
 280 public:
 281   G1OldGenMemoryManager() : GCMemoryManager() {}
 282 
 283   MemoryManager::Name kind() { return MemoryManager::G1OldGen; }
 284   const char* name()         { return "G1 Old Generation"; }









 285 };
 286 
 287 #endif // SHARE_VM_SERVICES_MEMORYMANAGER_HPP


  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   enum Name {
  57     Abstract,
  58     CodeCache,
  59     Metaspace,
  60     Copy,
  61     MarkSweepCompact,
  62     ParNew,
  63     ConcurrentMarkSweep,
  64     PSScavenge,
  65     PSMarkSweep,
  66     G1YoungGen,
  67     G1OldGen,
  68     Epsilon,
  69   };
  70 
  71   MemoryManager();
  72 
  73   int num_memory_pools() const           { return _num_pools; }
  74   MemoryPool* get_memory_pool(int index) {
  75     assert(index >= 0 && index < _num_pools, "Invalid index");
  76     return _pools[index];
  77   }
  78 
  79   void add_pool(MemoryPool* pool);
  80 
  81   bool is_manager(instanceHandle mh)     { return mh() == _memory_mgr_obj; }
  82 
  83   virtual instanceOop get_memory_manager_instance(TRAPS);
  84   virtual MemoryManager::Name kind()     { return MemoryManager::Abstract; }
  85   virtual bool is_gc_memory_manager()    { return false; }
  86   virtual const char* name() = 0;
  87 
  88   // GC support
  89   void oops_do(OopClosure* f);
  90 
  91   // Static factory methods to get a memory manager of a specific type
  92   static MemoryManager*   get_code_cache_memory_manager();
  93   static MemoryManager*   get_metaspace_memory_manager();
  94   static GCMemoryManager* get_copy_memory_manager();
  95   static GCMemoryManager* get_msc_memory_manager();
  96   static GCMemoryManager* get_parnew_memory_manager();
  97   static GCMemoryManager* get_cms_memory_manager();
  98   static GCMemoryManager* get_psScavenge_memory_manager();
  99   static GCMemoryManager* get_psMarkSweep_memory_manager();
 100   static GCMemoryManager* get_g1YoungGen_memory_manager();
 101   static GCMemoryManager* get_g1OldGen_memory_manager();
 102   static GCMemoryManager* get_epsilon_memory_manager();
 103 };
 104 
 105 class CodeCacheMemoryManager : public MemoryManager {
 106 private:
 107 public:
 108   CodeCacheMemoryManager() : MemoryManager() {}
 109 
 110   MemoryManager::Name kind() { return MemoryManager::CodeCache; }
 111   const char* name()         { return "CodeCacheManager"; }
 112 };
 113 
 114 class MetaspaceMemoryManager : public MemoryManager {
 115 public:
 116   MetaspaceMemoryManager() : MemoryManager() {}
 117 
 118   MemoryManager::Name kind() { return MemoryManager::Metaspace; }
 119   const char *name()         { return "Metaspace Manager"; }
 120 };
 121 
 122 class GCStatInfo : public ResourceObj {


 266   MemoryManager::Name kind() { return MemoryManager::PSMarkSweep; }
 267   const char* name()         { return "PS MarkSweep"; }
 268 };
 269 
 270 class G1YoungGenMemoryManager : public GCMemoryManager {
 271 private:
 272 public:
 273   G1YoungGenMemoryManager() : GCMemoryManager() {}
 274 
 275   MemoryManager::Name kind() { return MemoryManager::G1YoungGen; }
 276   const char* name()         { return "G1 Young Generation"; }
 277 };
 278 
 279 class G1OldGenMemoryManager : public GCMemoryManager {
 280 private:
 281 public:
 282   G1OldGenMemoryManager() : GCMemoryManager() {}
 283 
 284   MemoryManager::Name kind() { return MemoryManager::G1OldGen; }
 285   const char* name()         { return "G1 Old Generation"; }
 286 };
 287 
 288 class EpsilonMemoryManager : public GCMemoryManager {
 289 private:
 290 public:
 291   EpsilonMemoryManager() : GCMemoryManager() {}
 292 
 293   MemoryManager::Name kind() { return MemoryManager::Epsilon; }
 294   const char* name() { return "Epsilon Generation"; }
 295 };
 296 
 297 #endif // SHARE_VM_SERVICES_MEMORYMANAGER_HPP
< prev index next >