1.1 --- a/src/share/vm/services/memoryPool.cpp Tue Jun 25 15:17:11 2013 -0700 1.2 +++ b/src/share/vm/services/memoryPool.cpp Wed Jun 26 16:58:37 2013 +0200 1.3 @@ -25,6 +25,7 @@ 1.4 #include "precompiled.hpp" 1.5 #include "classfile/systemDictionary.hpp" 1.6 #include "classfile/vmSymbols.hpp" 1.7 +#include "memory/metaspace.hpp" 1.8 #include "oops/oop.inline.hpp" 1.9 #include "runtime/handles.inline.hpp" 1.10 #include "runtime/javaCalls.hpp" 1.11 @@ -33,6 +34,7 @@ 1.12 #include "services/memoryManager.hpp" 1.13 #include "services/memoryPool.hpp" 1.14 #include "utilities/macros.hpp" 1.15 +#include "utilities/globalDefinitions.hpp" 1.16 1.17 MemoryPool::MemoryPool(const char* name, 1.18 PoolType type, 1.19 @@ -256,3 +258,39 @@ 1.20 1.21 return MemoryUsage(initial_size(), used, committed, maxSize); 1.22 } 1.23 + 1.24 +MetaspacePool::MetaspacePool() : 1.25 + MemoryPool("Metaspace", NonHeap, capacity_in_bytes(), calculate_max_size(), true, false) { } 1.26 + 1.27 +MemoryUsage MetaspacePool::get_memory_usage() { 1.28 + size_t committed = align_size_down_(capacity_in_bytes(), os::vm_page_size()); 1.29 + return MemoryUsage(initial_size(), used_in_bytes(), committed, max_size()); 1.30 +} 1.31 + 1.32 +size_t MetaspacePool::used_in_bytes() { 1.33 + return MetaspaceAux::allocated_used_bytes(Metaspace::NonClassType); 1.34 +} 1.35 + 1.36 +size_t MetaspacePool::capacity_in_bytes() const { 1.37 + return MetaspaceAux::allocated_capacity_bytes(Metaspace::NonClassType); 1.38 +} 1.39 + 1.40 +size_t MetaspacePool::calculate_max_size() const { 1.41 + return FLAG_IS_CMDLINE(MaxMetaspaceSize) ? MaxMetaspaceSize : max_uintx; 1.42 +} 1.43 + 1.44 +CompressedKlassSpacePool::CompressedKlassSpacePool() : 1.45 + MemoryPool("Compressed Class Space", NonHeap, capacity_in_bytes(), ClassMetaspaceSize, true, false) { } 1.46 + 1.47 +size_t CompressedKlassSpacePool::used_in_bytes() { 1.48 + return MetaspaceAux::allocated_used_bytes(Metaspace::ClassType); 1.49 +} 1.50 + 1.51 +size_t CompressedKlassSpacePool::capacity_in_bytes() const { 1.52 + return MetaspaceAux::allocated_capacity_bytes(Metaspace::ClassType); 1.53 +} 1.54 + 1.55 +MemoryUsage CompressedKlassSpacePool::get_memory_usage() { 1.56 + size_t committed = align_size_down_(capacity_in_bytes(), os::vm_page_size()); 1.57 + return MemoryUsage(initial_size(), used_in_bytes(), committed, max_size()); 1.58 +}