[foreign-memaccess+abi] RFR: 8313238: Improve the performance of strlen for null-terminated strings
Per Minborg
pminborg at openjdk.org
Thu Aug 3 14:14:00 UTC 2023
On Thu, 3 Aug 2023 13:52:27 GMT, Per Minborg <pminborg at openjdk.org> wrote:
> This PR proposes to use native calls for determining the string length for C-type strings.
>
> Smaller segments (<1024 bytes) is using a trivial call whereas all other segments are using a normal call. We might consider always using regular calls if we think most segments are unbound anyhow.
>
> The PR also contains a number of new tests, one of which requires a large heap size to run. It is likely that this latter test will not run in most test environments. In such cases, it is silently ignored.
Here are some benchmarks for various string lengths:
Before:
Benchmark (size) Mode Cnt Score Error Units
InternalStrLen.currentSingleByte 4 avgt 30 2.989 ? 0.013 ns/op
InternalStrLen.currentSingleByte 251 avgt 30 124.791 ? 0.210 ns/op
After:
Benchmark (size) Mode Cnt Score Error Units
InternalStrLen.nativeSingleByte 4 avgt 30 3.345 ? 0.020 ns/op
InternalStrLen.nativeSingleByte 251 avgt 30 8.753 ? 0.022 ns/op
-------------
PR Comment: https://git.openjdk.org/panama-foreign/pull/857#issuecomment-1664058014
More information about the panama-dev
mailing list