RFR: 8253037: G1: Improve check for string dedup [v2]

Kim Barrett kbarrett at openjdk.java.net
Mon Nov 2 12:27:10 UTC 2020

> Please review this change to G1 evacuation's checking for string
> deduplication.  The old code would go out of line to the G1StringDedup
> support code for every object when deduplication is enabled, only to usually
> discover the object isn't a string.  Instead we now have a simpl inline
> test for the combination of dedup enabled and object is a string, and only
> call out to the dedup support code when that's true.  This eliminates some
> work for every non-string (non-array) object when dedup is enabled.
> The performance impact seems to be pretty small and hard to measure, since
> enabling deduplication has other costs that seem to overwhelm the cost
> here.  I'm hoping to improve that with JDK-8254598.
> Testing:
> tier1 on Oracle supported platforms.
> Performance testing with deduplication enabled.

Kim Barrett has updated the pull request incrementally with two additional commits since the last revision:

 - comment the combined is_enabled + is_string test
 - move string check from is_candidate_from_mark to fullgc caller


  - all: https://git.openjdk.java.net/jdk/pull/981/files
  - new: https://git.openjdk.java.net/jdk/pull/981/files/cc583d70..50fb6ad1

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

  Stats: 25 lines in 4 files changed: 6 ins; 7 del; 12 mod
  Patch: https://git.openjdk.java.net/jdk/pull/981.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/981/head:pull/981

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

More information about the hotspot-gc-dev mailing list