Integrated: 8338591: Improve performance of MemorySegment::copy
Per Minborg
pminborg at openjdk.org
Thu Sep 5 13:12:58 UTC 2024
On Tue, 3 Sep 2024 07:52:44 GMT, Per Minborg <pminborg at openjdk.org> wrote:
> This PR proposes to handle smaller FFM copy operations with Java code rather than transitioning to native code. This will improve performance. In this PR, copy operations involving zero to 63 bytes will be handled by Java code.
>
> Here is what it looks like for Windows x64:
>
> 
>
> Here is another chart for Linux a64:
>
> 
>
> Other platforms exhibit similar behavior. It should be noted that the gain with this PR is pronounced for certain common sizes that are more likely to appear in code (e.g. 8, 16, 24, and 32)
>
> It would be possible to use the same code path for the 7arg `MemorySegment::copy` method if it is similar to:
>
>
> MemorySegment.copy(heapSrcSegment, JAVA_BYTE, 0, heapDstSegment, JAVA_BYTE, 0, ELEM_SIZE);
>
>
> This could be added in a separate PR.
>
> This PR has been tested with tier1-3 and passed.
This pull request has now been integrated.
Changeset: 6be92726
Author: Per Minborg <pminborg at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/6be927260a84b1d7542167e526ff41f7dc26cab0
Stats: 299 lines in 4 files changed: 286 ins; 6 del; 7 mod
8338591: Improve performance of MemorySegment::copy
Reviewed-by: mcimadamore
-------------
PR: https://git.openjdk.org/jdk/pull/20829
More information about the core-libs-dev
mailing list