> 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.

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3123/files
  - new: https://git.openjdk.java.net/jdk/pull/3123/files/328f72c5..7a0ad9ee

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3123&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3123&range=00-01

  Stats: 20 lines in 2 files changed: 0 ins; 16 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3123.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3123/head:pull/3123

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

Reply via email to