2539 #endif // PRODUCT |
2539 #endif // PRODUCT |
2540 |
2540 |
2541 |
2541 |
2542 // MetaspaceAux |
2542 // MetaspaceAux |
2543 |
2543 |
|
2544 size_t MetaspaceAux::used_in_bytes_unsafe(Metaspace::MetadataType mdtype) { |
|
2545 size_t used = 0; |
|
2546 ClassLoaderDataGraphMetaspaceIterator iter; |
|
2547 while (iter.repeat()) { |
|
2548 Metaspace* msp = iter.get_next(); |
|
2549 // Sum allocation_total for each metaspace |
|
2550 if (msp != NULL) { |
|
2551 used += msp->used_words(mdtype); |
|
2552 } |
|
2553 } |
|
2554 return used * BytesPerWord; |
|
2555 } |
|
2556 |
2544 size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) { |
2557 size_t MetaspaceAux::used_in_bytes(Metaspace::MetadataType mdtype) { |
|
2558 assert(SafepointSynchronize::is_at_safepoint(), |
|
2559 "Consistency checks require being at a safepoint"); |
2545 size_t used = 0; |
2560 size_t used = 0; |
2546 #ifdef ASSERT |
2561 #ifdef ASSERT |
2547 size_t free = 0; |
2562 size_t free = 0; |
2548 size_t capacity = 0; |
2563 size_t capacity = 0; |
2549 #endif |
2564 #endif |
2644 Metaspace::MetadataType nct = Metaspace::NonClassType; |
2659 Metaspace::MetadataType nct = Metaspace::NonClassType; |
2645 |
2660 |
2646 out->print_cr(" Metaspace total " |
2661 out->print_cr(" Metaspace total " |
2647 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2662 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2648 " reserved " SIZE_FORMAT "K", |
2663 " reserved " SIZE_FORMAT "K", |
2649 capacity_in_bytes()/K, used_in_bytes()/K, reserved_in_bytes()/K); |
2664 capacity_in_bytes()/K, used_in_bytes_unsafe()/K, reserved_in_bytes()/K); |
2650 out->print_cr(" data space " |
2665 out->print_cr(" data space " |
2651 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2666 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2652 " reserved " SIZE_FORMAT "K", |
2667 " reserved " SIZE_FORMAT "K", |
2653 capacity_in_bytes(nct)/K, used_in_bytes(nct)/K, reserved_in_bytes(nct)/K); |
2668 capacity_in_bytes(nct)/K, used_in_bytes_unsafe(nct)/K, reserved_in_bytes(nct)/K); |
2654 out->print_cr(" class space " |
2669 out->print_cr(" class space " |
2655 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2670 SIZE_FORMAT "K, used " SIZE_FORMAT "K," |
2656 " reserved " SIZE_FORMAT "K", |
2671 " reserved " SIZE_FORMAT "K", |
2657 capacity_in_bytes(ct)/K, used_in_bytes(ct)/K, reserved_in_bytes(ct)/K); |
2672 capacity_in_bytes(ct)/K, used_in_bytes_unsafe(ct)/K, reserved_in_bytes(ct)/K); |
2658 } |
2673 } |
2659 |
2674 |
2660 // Print information for class space and data space separately. |
2675 // Print information for class space and data space separately. |
2661 // This is almost the same as above. |
2676 // This is almost the same as above. |
2662 void MetaspaceAux::print_on(outputStream* out, Metaspace::MetadataType mdtype) { |
2677 void MetaspaceAux::print_on(outputStream* out, Metaspace::MetadataType mdtype) { |