RFR JDK-8059510 Compact symbol table layout inside shared archive
Gerard Ziemski
gerard.ziemski at oracle.com
Tue Oct 21 16:17:58 UTC 2014
hi Jiangli,
Still going through your web rev, but I have one additional question so
far regarding: "SymbolTable::lookup”
Symbol* SymbolTable::lookup(int index, const char* name,
int len, unsigned int hash) {
+ Symbol* s = _shared_table.lookup(name, hash, len);
+ if (s != NULL) {
+ return s;
+ }
+
Instead of statically allocating _shared_table could we declare it as a
NULL pointer and only allocate it in
SymbolTable::init_shared_table as needed? Then we could have:
Symbol* SymbolTable::lookup(int index, const char* name,
int len, unsigned int hash) {
+ if (_shared_table != NULL) {
+ Symbol* s = _shared_table.lookup(name, hash, len);
+ if (s != NULL) {
+ return s;
+ }
+ }
+
and avoid a NOP call to _shared_table in case where CDS is not used - that would also
make it easy to see that there is no lookup penalty while sharing is off.
cheers
More information about the hotspot-runtime-dev
mailing list