7133093: Improve system dictionary performance

Implement one dictionary per ClassLoaderData for faster lookup and removal during class unloading

Reviewed-by: iklam, acorn, jiangli
This commit is contained in:
Coleen Phillimore 2017-07-28 10:48:35 -04:00
parent b170f01ddd
commit a1f70549e4
52 changed files with 781 additions and 1466 deletions

View file

@ -339,12 +339,7 @@ ModuleEntry* ModuleEntryTable::new_entry(unsigned int hash, Handle module_handle
Symbol* version, Symbol* location,
ClassLoaderData* loader_data) {
assert(Module_lock->owned_by_self(), "should have the Module_lock");
ModuleEntry* entry = (ModuleEntry*) NEW_C_HEAP_ARRAY(char, entry_size(), mtModule);
// Initialize everything BasicHashtable would
entry->set_next(NULL);
entry->set_hash(hash);
entry->set_literal(name);
ModuleEntry* entry = (ModuleEntry*)Hashtable<Symbol*, mtModule>::allocate_new_entry(hash, name);
// Initialize fields specific to a ModuleEntry
entry->init();