Startup profiling with CDS enabled shows that we may spend more time in Symbol::lookup than otherwise, and this appears to be that since we call Symbol::equals via compactHashtable the method is not fully inlined at those call sites.
Moving the implementation of Symbol::equals(char*, int) from the .cpp to the .hpp leads to more efficient inlining, and a 7-10% reduction in instruction counts for SymbolTable::lookup in startup tests (2.7M -> 2.5M in a hello world setting).
Moving the implementation of Symbol::equals(char*, int) from the .cpp to the .hpp leads to more efficient inlining, and a 7-10% reduction in instruction counts for SymbolTable::lookup in startup tests (2.7M -> 2.5M in a hello world setting).