RFR (not as big as it looks) 8184994: Add Dictionary size logging and jcmd

Aleksey Shipilev shade at redhat.com
Tue Aug 1 14:53:07 UTC 2017


On 08/01/2017 04:36 PM, coleen.phillimore at oracle.com wrote:
> Summary: added dcmd for printing system dictionary like the stringtable and symboltable and making
> print functions go to outputstream rather than tty
> 
> Tested with tier1 on linux x64, and runThese with jcmd to query systemdictionaries (lots of class
> loaders).
> 
> open webrev at http://cr.openjdk.java.net/~coleenp/8184994.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8184994

Cursory review:

*) Not entirely clear why this include in compactHashtable.cpp:

  32 #include "runtime/vmThread.hpp"

*) I guess these pairs of lines may be coalesced in dictionary.cpp:

 444   st->print_cr("^ indicates that initiating loader is different from "
 445                "defining loader");

 454       st->print("%4d: %s%s", index, is_defining_class ? " " : "^", e->external_name());
 455       st->print(", loader ");


*) dictionary.hpp: stray whitespace at the end

 106   void print_on(outputStream* st) const ;

*) placeholders.cpp: while we are here, probably worth changing print("\n") to cr()?

*) placeholders.cpp: coalesce?

 232       st->print("%4d: ", pindex);
 233       st->print("placeholder ");

*) placeholders.hpp: method name is camel-cased, can rename it?

 130   void printActionQ(outputStream* st) {

*) systemDictionary.cpp: in SystemDictionary::dump, the if(verbose) condition seems inverted. Should
dump tables when verbose?


Thanks,
-Aleksey



More information about the hotspot-runtime-dev mailing list