src/share/vm/memory/metaspace.cpp

changeset 4042
5d2156bcb78b
parent 4038
03049e0e8544
child 4046
942bb29b20b0
     1.1 --- a/src/share/vm/memory/metaspace.cpp	Tue Sep 04 18:01:20 2012 -0700
     1.2 +++ b/src/share/vm/memory/metaspace.cpp	Tue Sep 04 16:20:28 2012 -0700
     1.3 @@ -2541,7 +2541,22 @@
     1.4  
     1.5  // MetaspaceAux
     1.6  
     1.7 +size_t MetaspaceAux::used_in_bytes_unsafe(Metaspace::MetadataType mdtype) {
     1.8 +  size_t used = 0;
     1.9 +  ClassLoaderDataGraphMetaspaceIterator iter;
    1.10 +  while (iter.repeat()) {
    1.11 +    Metaspace* msp = iter.get_next();
    1.12 +    // Sum allocation_total for each metaspace
    1.13 +    if (msp != NULL) {
    1.14 +      used += msp->used_words(mdtype);
    1.15 +    }
    1.16 +  }
    1.17 +  return used * BytesPerWord;
    1.18 +}
    1.19 +
    1.20  size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) {
    1.21 +  assert(SafepointSynchronize::is_at_safepoint(),
    1.22 +    "Consistency checks require being at a safepoint");
    1.23    size_t used = 0;
    1.24  #ifdef ASSERT
    1.25    size_t free = 0;
    1.26 @@ -2646,15 +2661,15 @@
    1.27    out->print_cr(" Metaspace total "
    1.28                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.29                  " reserved " SIZE_FORMAT "K",
    1.30 -                capacity_in_bytes()/K, used_in_bytes()/K, reserved_in_bytes()/K);
    1.31 +                capacity_in_bytes()/K, used_in_bytes_unsafe()/K, reserved_in_bytes()/K);
    1.32    out->print_cr("  data space     "
    1.33                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.34                  " reserved " SIZE_FORMAT "K",
    1.35 -                capacity_in_bytes(nct)/K, used_in_bytes(nct)/K, reserved_in_bytes(nct)/K);
    1.36 +                capacity_in_bytes(nct)/K, used_in_bytes_unsafe(nct)/K, reserved_in_bytes(nct)/K);
    1.37    out->print_cr("  class space    "
    1.38                  SIZE_FORMAT "K, used " SIZE_FORMAT "K,"
    1.39                  " reserved " SIZE_FORMAT "K",
    1.40 -                capacity_in_bytes(ct)/K, used_in_bytes(ct)/K, reserved_in_bytes(ct)/K);
    1.41 +                capacity_in_bytes(ct)/K, used_in_bytes_unsafe(ct)/K, reserved_in_bytes(ct)/K);
    1.42  }
    1.43  
    1.44  // Print information for class space and data space separately.

mercurial