[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