On Mon, 22 Mar 2021 15:49:24 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. This pull request has now been integrated. Changeset: 5bc382fb Author: Coleen Phillimore <cole...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/5bc382fb Stats: 178 lines in 16 files changed: 10 ins; 131 del; 37 mod 8263976: Remove block allocation from BasicHashtable Reviewed-by: lfoltan, iklam ------------- PR: https://git.openjdk.java.net/jdk/pull/3123