RFR: 8338967: Improve performance for MemorySegment::fill
Per Minborg
pminborg at openjdk.org
Mon Aug 26 11:52:27 UTC 2024
The performance of the `MemorySegment::fil` can be improved by replacing the `checkAccess()` method call with calling `checkReadOnly()` instead (as the bounds of the segment itself do not need to be checked).
Also, smaller segments can be handled directly by Java code rather than transitioning to native code.
Here is how the `MemorySegment::fill` performance is improved by this PR:

Operations involving 8 or more bytes are delegated to native code whereas smaller segments are handled via a switch rake.
It should be noted that `Arena::allocate` is using `MemorySegment::fil`. Hence, this PR will also have a positive effect on memory allocation performance.
-------------
Commit messages:
- Reduce kick-in size and add test
- Initial implementation
Changes: https://git.openjdk.org/jdk/pull/20712/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20712&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8338967
Stats: 235 lines in 3 files changed: 231 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/20712.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20712/head:pull/20712
PR: https://git.openjdk.org/jdk/pull/20712
More information about the core-libs-dev
mailing list