# HG changeset patch # User stuefe # Date 1561384978 -7200 # Mon Jun 24 16:02:58 2019 +0200 # Node ID c3e0e88eb35f65e594e909fb2efbbb718a457c0d # Parent 2837d9837da525bee75a99ea4eec95c55c2440e4 [mq]: 8222015-Small-VM.metaspace-improvements-11-additions.patch diff -r 2837d9837da5 -r c3e0e88eb35f src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp --- a/src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp Fri Apr 05 11:52:32 2019 +0200 +++ b/src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp Mon Jun 24 16:02:58 2019 +0200 @@ -40,13 +40,29 @@ : _out(out), _scale(scale), _do_print(do_print), _do_print_classes(do_print_classes) , _break_down_by_chunktype(break_down_by_chunktype) , _num_loaders(0), _num_loaders_unloading(0), _num_loaders_without_metaspace(0) +, _num_classes(0), _num_classes_shared(0) { memset(_num_loaders_by_spacetype, 0, sizeof(_num_loaders_by_spacetype)); + memset(_num_classes_by_spacetype, 0, sizeof(_num_classes_by_spacetype)); + memset(_num_classes_shared_by_spacetype, 0, sizeof(_num_classes_shared_by_spacetype)); } -static const char* classes_plural(uintx num) { - return num == 1 ? "" : "es"; -} +// A closure just to count classes +class CountKlassClosure : public KlassClosure { +public: + + uintx _num_classes; + uintx _num_classes_shared; + + CountKlassClosure() : _num_classes(0), _num_classes_shared(0) {} + void do_klass(Klass* k) { + _num_classes ++; + if (k->is_shared()) { + _num_classes_shared ++; + } + } + +}; // end: PrintKlassInfoClosure void PrintCLDMetaspaceInfoClosure::do_cld(ClassLoaderData* cld) {