The ResourceHashtable conversion for JDK-8292741 didn't add the resizing code.  
The old hashtable code was tuned for resizing in anticipation of large 
hashtables for JVMTI tags.  This patch ports over the old hashtable resizing 
code.  It also adds a ResourceHashtable::put_fast() function that prepends to 
the bucket list, which is also reclaims the performance of the old hashtable 
for this test with 10M tags.  The ResourceHashtable put function is really a 
put_if_absent. This can be cleaned up in a future change.  Also, the remove 
function needed a lambda to destroy the WeakHandle, since resizing requires 
copying entries.

Tested with JVMTI and JDI tests locally, and tier1-4 tests.

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

Commit messages:
 - put back the comment for put.
 - 8306843: JVMTI tag map extremely slow after JDK-8292741

Changes: https://git.openjdk.org/jdk/pull/13818/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13818&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306843
  Stats: 326 lines in 8 files changed: 242 ins; 41 del; 43 mod
  Patch: https://git.openjdk.org/jdk/pull/13818.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13818/head:pull/13818

PR: https://git.openjdk.org/jdk/pull/13818

Reply via email to