src/share/vm/services/memoryPool.cpp

changeset 5312
71963b3f802a
parent 4827
42e370795a39
child 5552
422920730903
     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 +}

mercurial