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

Kim Barrett kbarrett at openjdk.java.net
Wed Nov 4 04:57:12 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:

 - Merge branch 'master' into string_dedup_check
 - comment the combined is_enabled + is_string test
 - move string check from is_candidate_from_mark to fullgc caller
 - new check

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

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

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

  Stats: 7783 lines in 270 files changed: 4622 ins; 1951 del; 1210 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