RFR: 8357531: The `SegmentBulkOperations::fill` method can be improved using overlaps [v15]

Per Minborg pminborg at openjdk.org
Wed Aug 6 16:22:30 UTC 2025


> This PR builds on a concept John Rose told me about some time ago. Instead of combining memory operations of various sizes, a single large and skewed memory operation can be made to clean up the tail of remaining bytes.
> 
> This has the effect of simplifying and shortening the code. The number of branches to evaluate is reduced.
> 
> It should be noted that the performance of the fill operation affects the allocation of new segments (as they are zeroed out before being returned to the client code).
> 
> This PR passes tier1, tier2, and tier3 on multiple platforms.

Per Minborg 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 18 additional commits since the last revision:

 - Merge branch 'master' into fill-overlap
 - Fix inverted logic error
 - Revert the default value for the fill threshold
 - Revert the settable fill threshold
 - Improve performance
 - Merge branch 'master' into fill-overlap
 - Use Unsafe directly in benchmarks
 - Merge branch 'master' into fill-overlap
 - Use a fixed threashold for fill
 - Fix benchmark
 - ... and 8 more: https://git.openjdk.org/jdk/compare/8c025250...bbf08938

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25383/files
  - new: https://git.openjdk.org/jdk/pull/25383/files/1f454706..bbf08938

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25383&range=14
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25383&range=13-14

  Stats: 3011 lines in 94 files changed: 1426 ins; 1332 del; 253 mod
  Patch: https://git.openjdk.org/jdk/pull/25383.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25383/head:pull/25383

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


More information about the core-libs-dev mailing list