src/share/vm/services/memoryPool.cpp

changeset 4825
dbd5837b342f
parent 4542
db9981fd3124
child 4827
42e370795a39
     1.1 --- a/src/share/vm/services/memoryPool.cpp	Wed Mar 20 12:27:03 2013 -0700
     1.2 +++ b/src/share/vm/services/memoryPool.cpp	Fri Mar 22 16:10:01 2013 +0100
     1.3 @@ -26,12 +26,15 @@
     1.4  #include "classfile/systemDictionary.hpp"
     1.5  #include "classfile/vmSymbols.hpp"
     1.6  #include "oops/oop.inline.hpp"
     1.7 +#include "runtime/globals.hpp"
     1.8  #include "runtime/handles.inline.hpp"
     1.9  #include "runtime/javaCalls.hpp"
    1.10 +#include "runtime/os.hpp"
    1.11  #include "services/lowMemoryDetector.hpp"
    1.12  #include "services/management.hpp"
    1.13  #include "services/memoryManager.hpp"
    1.14  #include "services/memoryPool.hpp"
    1.15 +#include "utilities/globalDefinitions.hpp"
    1.16  #include "utilities/macros.hpp"
    1.17  
    1.18  MemoryPool::MemoryPool(const char* name,
    1.19 @@ -256,3 +259,34 @@
    1.20  
    1.21    return MemoryUsage(initial_size(), used, committed, maxSize);
    1.22  }
    1.23 +
    1.24 +MetaspacePoolBase::MetaspacePoolBase(const char *name,
    1.25 +                                     Metaspace::MetadataType md_type,
    1.26 +                                     size_t max_size) :
    1.27 +    _md_type(md_type),
    1.28 +    MemoryPool(name, NonHeap, MetaspaceAux::capacity_in_bytes(_md_type), max_size,
    1.29 +               true, false) { }
    1.30 +
    1.31 +size_t MetaspacePoolBase::used_in_bytes() {
    1.32 +  return MetaspaceAux::used_in_bytes(_md_type);
    1.33 +}
    1.34 +
    1.35 +MemoryUsage MetaspacePoolBase::get_memory_usage() {
    1.36 +  size_t used = MetaspaceAux::used_in_bytes(_md_type);
    1.37 +  size_t committed = align_size_down_(MetaspaceAux::capacity_in_bytes(_md_type), os::vm_page_size());
    1.38 +  return MemoryUsage(initial_size(), used, committed, max_size());
    1.39 +}
    1.40 +
    1.41 +ClassMetaspacePool::ClassMetaspacePool() :
    1.42 +    MetaspacePoolBase("Class Metaspace", Metaspace::ClassType, calculate_max_size()) { }
    1.43 +
    1.44 +size_t ClassMetaspacePool::calculate_max_size() {
    1.45 +  return UseCompressedKlassPointers ? ClassMetaspaceSize : _undefined_max_size;
    1.46 +}
    1.47 +
    1.48 +MetaspacePool::MetaspacePool() :
    1.49 +    MetaspacePoolBase("Metaspace", Metaspace::NonClassType, calculate_max_size()) { }
    1.50 +
    1.51 +size_t MetaspacePool::calculate_max_size() {
    1.52 +  return FLAG_IS_CMDLINE(MaxMetaspaceSize) ? MaxMetaspaceSize : _undefined_max_size;
    1.53 +}

mercurial