mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8195100: Use a low latency hashtable for SymbolTable
Used concurrentHashTable, similar to stringTable Reviewed-by: coleenp, kbarrett, iklam, pliden
This commit is contained in:
parent
9cea96184f
commit
b75805c1a5
26 changed files with 1094 additions and 798 deletions
|
@ -162,12 +162,8 @@
|
|||
|
||||
typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
|
||||
typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
|
||||
typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
|
||||
typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
|
||||
typedef Hashtable<InstanceKlass*, mtClass> KlassHashtable;
|
||||
typedef HashtableEntry<InstanceKlass*, mtClass> KlassHashtableEntry;
|
||||
typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
|
||||
typedef RehashableHashtable<Symbol*, mtSymbol> RehashableSymbolHashtable;
|
||||
|
||||
typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
||||
|
||||
|
@ -467,24 +463,6 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
static_field(PerfMemory, _prologue, PerfDataPrologue*) \
|
||||
static_field(PerfMemory, _initialized, int) \
|
||||
\
|
||||
/***************/ \
|
||||
/* SymbolTable */ \
|
||||
/***************/ \
|
||||
\
|
||||
static_field(SymbolTable, _the_table, SymbolTable*) \
|
||||
static_field(SymbolTable, _shared_table, SymbolCompactHashTable) \
|
||||
static_field(RehashableSymbolHashtable, _seed, juint) \
|
||||
\
|
||||
/********************/ \
|
||||
/* CompactHashTable */ \
|
||||
/********************/ \
|
||||
\
|
||||
nonstatic_field(SymbolCompactHashTable, _base_address, address) \
|
||||
nonstatic_field(SymbolCompactHashTable, _entry_count, u4) \
|
||||
nonstatic_field(SymbolCompactHashTable, _bucket_count, u4) \
|
||||
nonstatic_field(SymbolCompactHashTable, _buckets, u4*) \
|
||||
nonstatic_field(SymbolCompactHashTable, _entries, u4*) \
|
||||
\
|
||||
/********************/ \
|
||||
/* SystemDictionary */ \
|
||||
/********************/ \
|
||||
|
@ -1351,15 +1329,13 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
declare_toplevel_type(PerfMemory) \
|
||||
declare_type(PerfData, CHeapObj<mtInternal>) \
|
||||
\
|
||||
/*********************************/ \
|
||||
/* SymbolTable, SystemDictionary */ \
|
||||
/*********************************/ \
|
||||
/********************/ \
|
||||
/* SystemDictionary */ \
|
||||
/********************/ \
|
||||
\
|
||||
declare_toplevel_type(BasicHashtable<mtInternal>) \
|
||||
declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
|
||||
declare_toplevel_type(BasicHashtable<mtSymbol>) \
|
||||
declare_type(RehashableSymbolHashtable, BasicHashtable<mtSymbol>) \
|
||||
declare_type(SymbolTable, SymbolHashtable) \
|
||||
declare_type(Dictionary, KlassHashtable) \
|
||||
declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
|
||||
declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
|
||||
|
@ -1373,8 +1349,6 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
declare_toplevel_type(Arena) \
|
||||
declare_type(ResourceArea, Arena) \
|
||||
\
|
||||
declare_toplevel_type(SymbolCompactHashTable) \
|
||||
\
|
||||
/***********************************************************/ \
|
||||
/* Thread hierarchy (needed for run-time type information) */ \
|
||||
/***********************************************************/ \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue