RFR: 8270333: -XX:+VerifyStringTableAtExit should not do linear search

Ioi Lam iklam at openjdk.java.net
Wed Jul 14 02:45:25 UTC 2021


The implementation of `-XX:+VerifyStringTableAtExit` used a linear search to check for duplicated strings in the interned string table. This would be excessively slow if there were more than a few thousand strings.

This PR uses a hashtable so we can avoid doing a linear search. The table is sized such that each bucket has 8 items on average.

Since this code is executed only for verification, I added a new `java_lang_String::hash_code_noupdate(oop)` function, so we can avoid causing side effects.

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

Commit messages:
 - 8270333: -XX:+VerifyStringTableAtExit should not do linear search

Changes: https://git.openjdk.java.net/jdk/pull/4772/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4772&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8270333
  Stats: 47 lines in 3 files changed: 26 ins; 8 del; 13 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4772.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4772/head:pull/4772

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


More information about the hotspot-runtime-dev mailing list