On Mon, 22 Mar 2021 22:48:05 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> From CR:
>> The useful/general BasicHashtable uses a block allocation scheme to 
>> reportedly reduce fragmentation. When the StringTable and SymbolTable used 
>> to use this hashtable, performance benefits were reportedly observed because 
>> of the block allocation scheme. Since these tables were moved to the 
>> concurrent hashtables, the tables left that use the block allocation scheme 
>> are:
>> 
>> AdapterHandlerLibrary, ResolutionError, LoaderConstraints, Leak profiler 
>> bitset table and Placeholders. 3 of these tables are very small and never 
>> needed block allocation to prevent fragmentation at least. Also there are 3 
>> KVHashtables, which are built from BasicHashtable. 2 are used during dumping 
>> and 1 is ID2KlassTable which appears small.
>> 
>> ModuleEntry, PackageEntry, Dictionary, G1RootSet for nmethods, and 
>> JvmtiTagMap tables didn't use the block allocation scheme.
>> 
>> Removing this removes 7 pointers per table, and for each ClassLoaderData, 
>> which has 3 tables, removes 21 pointers.
>> 
>> This change was performance tested on linux and windows.
>> 
>> It was also tested with tier1-6.
>
> Coleen Phillimore has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Fix Hashtable constructor and comments.

Marked as reviewed by iklam (Reviewer).

-------------

PR: https://git.openjdk.java.net/jdk/pull/3123

Reply via email to