RFR: 8345465: Fix performance regression on x64 after JDK-8345120 [v4]

Maurizio Cimadamore mcimadamore at openjdk.org
Tue Dec 10 09:50:41 UTC 2024


On Tue, 10 Dec 2024 07:30:19 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> This PR proposes to fix a performance regression (on x64 platforms) for 32-bit strings introduced by [JDK-8345120](https://bugs.openjdk.org/browse/JDK-8345120).
>> 
>> The PR also fixes a performance regression in the benchmarks caused by using the wrong type for `MemorySegment`.
>> 
>> Regrettably, this PR uses different code paths for various architectures. This gives optimum performance for all platforms at the expense of slightly more code complexity. More specifically, the PR gives a ~15% performance improvement on x64 platforms for longer 32-bit strings.
>> 
>> Passes tier1-tier3.
>
> 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 nine additional commits since the last revision:
> 
>  - Simplify code
>  - Merge branch 'master' into strlen-bench-update
>  - Improve short string cases
>  - Update comment
>  - Merge branch 'master' into strlen-bench-update
>  - Fix regression on x64
>  - Go back to use MemorySegment types
>  - Merge branch 'master' into strlen-bench-update
>  - Use aliases for legacy code.

Marked as reviewed by mcimadamore (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/22539#pullrequestreview-2491706260


More information about the core-libs-dev mailing list