[foreign-memaccess+abi] RFR: Improve strlen performance [v4]
Maurizio Cimadamore
mcimadamore at openjdk.org
Tue Aug 15 12:11:23 UTC 2023
On Tue, 15 Aug 2023 10:21:41 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This PR suggests removing the use of native calls for strlen and instead use Java implementations.
>>
>> The PR also suggest performance improvements for quad word strlen.
>>
>> Here are some benchmarks that compares the performance of the new proposed methods with the performance of the JDK 21 variants (called "legacy" methods):
>>
>> <img width="2596" alt="image" src="https://github.com/openjdk/panama-foreign/assets/7457876/c785f341-c826-4e3e-bf56-8387b1e96010">
>
> Per Minborg has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains ten commits:
>
> - Merge foreign-memaccess+abi and fix formatting
> - Fix missing spaces
> - Undo some unintended changes and clean up
> - Merge foreign-memaccess+abi
> - Clean up
> - Optimize str_len variants
> - Optimize strlen_short
> - Fix allocation size
> - Fix test with strcat
src/java.base/share/classes/jdk/internal/foreign/StringSupport.java line 45:
> 43: public static String read(MemorySegment segment, long offset, Charset charset) {
> 44: return switch (CharsetKind.of(charset)) {
> 45: case SINGLE_BYTE -> readFast_byte(segment, offset, charset);
I believe that, in the new code, there's no more distinction between slow and fast path? So we could simplify names to just "read/write_byte".
-------------
PR Review Comment: https://git.openjdk.org/panama-foreign/pull/862#discussion_r1294513009
More information about the panama-dev
mailing list