src/share/vm/services/memoryPool.hpp
Print this page
rev 4165 : 8000754: NPG: Implement a MemoryPool MXBean for Metaspace
*** 26,35 ****
--- 26,36 ----
#define SHARE_VM_SERVICES_MEMORYPOOL_HPP
#include "gc_implementation/shared/mutableSpace.hpp"
#include "memory/defNewGeneration.hpp"
#include "memory/heap.hpp"
+ #include "memory/metaspace.hpp"
#include "memory/space.hpp"
#include "services/memoryUsage.hpp"
#include "utilities/macros.hpp"
#if INCLUDE_ALL_GCS
#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
*** 220,225 ****
--- 221,251 ----
CodeHeapPool(CodeHeap* codeHeap, const char* name, bool support_usage_threshold);
MemoryUsage get_memory_usage();
size_t used_in_bytes() { return _codeHeap->allocated_capacity(); }
};
+ class MetaspacePoolBase : public MemoryPool {
+ private:
+ Metaspace::MetadataType _md_type;
+ protected:
+ static const size_t _undefined_max_size = (size_t) -1;
+ public:
+ MetaspacePoolBase(const char *name, Metaspace::MetadataType md_type, size_t max_size);
+ MemoryUsage get_memory_usage();
+ size_t used_in_bytes();
+ };
+
+ class ClassMetaspacePool : public MetaspacePoolBase {
+ private:
+ size_t calculate_max_size();
+ public:
+ ClassMetaspacePool();
+ };
+
+ class MetaspacePool : public MetaspacePoolBase {
+ private:
+ size_t calculate_max_size();
+ public:
+ MetaspacePool();
+ };
+
#endif // SHARE_VM_SERVICES_MEMORYPOOL_HPP