On Tue, 3 Sep 2024 07:52:44 GMT, Per Minborg <pminb...@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:
> 
> ![image](https://github.com/user-attachments/assets/6b31206e-3b24-4b34-bf38-a1be393186d3)
> 
> Here is another chart for Linux a64:
> 
> ![image](https://github.com/user-attachments/assets/b679bfac-670a-42a5-802b-2b17adf5ec79)
> 
> 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 <pminb...@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

Reply via email to