On Fri, 1 Aug 2025 16:12:46 GMT, Chen Liang <li...@openjdk.org> wrote:
>> Benchmark on win64 >> >> Baseline: >> >> >> Benchmark (charsetName) Mode Cnt Score >> Error Units >> StringEncode.encodeAllMixed UTF-8 avgt 10 20067.519 ┬▒ >> 528.152 ns/op >> StringEncode.encodeAsciiLong UTF-8 avgt 10 12115.389 ┬▒ >> 307.491 ns/op >> StringEncode.encodeAsciiShort UTF-8 avgt 10 70.098 ┬▒ >> 1.696 ns/op >> StringEncode.encodeLatin1LongEnd UTF-8 avgt 10 1974.391 ┬▒ >> 162.405 ns/op >> StringEncode.encodeLatin1LongOnly UTF-8 avgt 10 270.097 ┬▒ >> 13.840 ns/op >> StringEncode.encodeLatin1LongStart UTF-8 avgt 10 1876.366 ┬▒ >> 51.971 ns/op >> StringEncode.encodeLatin1Mixed UTF-8 avgt 10 4973.070 ┬▒ >> 130.426 ns/op >> StringEncode.encodeLatin1Short UTF-8 avgt 10 96.227 ┬▒ >> 2.816 ns/op >> StringEncode.encodeShortMixed UTF-8 avgt 10 360.586 ┬▒ >> 8.691 ns/op >> StringEncode.encodeUTF16LongEnd UTF-8 avgt 10 1534.748 ┬▒ >> 34.584 ns/op >> StringEncode.encodeUTF16LongOnly UTF-8 avgt 10 528.919 ┬▒ >> 15.143 ns/op >> StringEncode.encodeUTF16LongStart UTF-8 avgt 10 2275.117 ┬▒ >> 50.152 ns/op >> StringEncode.encodeUTF16Mixed UTF-8 avgt 10 4398.943 ┬▒ >> 116.607 ns/op >> StringEncode.encodeUTF16Short UTF-8 avgt 10 152.219 ┬▒ >> 8.677 ns/op >> >> >> >> Patch: >> >> Benchmark (charsetName) Mode Cnt Score >> Error Units >> StringEncode.encodeAllMixed UTF-8 avgt 10 18876.056 ┬▒ >> 330.644 ns/op >> StringEncode.encodeAsciiLong UTF-8 avgt 10 12040.590 ┬▒ >> 165.905 ns/op >> StringEncode.encodeAsciiShort UTF-8 avgt 10 69.895 ┬▒ >> 0.318 ns/op >> StringEncode.encodeLatin1LongEnd UTF-8 avgt 10 574.455 ┬▒ >> 14.769 ns/op >> StringEncode.encodeLatin1LongOnly UTF-8 avgt 10 284.553 ┬▒ >> 1.886 ns/op >> StringEncode.encodeLatin1LongStart UTF-8 avgt 10 2230.789 ┬▒ >> 11.043 ns/op >> StringEncode.encodeLatin1Mixed UTF-8 avgt 10 3278.998 ┬▒ >> 96.779 ns/op >> StringEncode.encodeLatin1Short UTF-8 avgt 10 99.332 ┬▒ >> 1.977 ns/op >> StringEncode.encodeShortMixed UTF-8 avgt 10 378.183 ┬▒ >> 17.504 ns/op >> StringEncode.encodeUTF16LongEnd UTF-8 avgt 10 1531.960 ┬▒ >> 19.300 ns/op >> StringEncode.encodeUTF16LongOnly U... > > @bokken FYI to make JMH comparison easier, you can let JMH generate JSON > reports, upload them to github gists, and use https://jmh.morethan.io/ to > compare the two results from two gists. @liach / @RogerRiggs I have been experimenting locally with other options which are a bit more complex: https://github.com/bokken/jdk/commits/string-utf8-mincopylength/ This seems like maybe a decent balance of complexity vs gain: https://github.com/bokken/jdk/commit/ee9d9e3496052fd5084f989bd7181504989d812b I am continuing to evaluate various options. ------------- PR Comment: https://git.openjdk.org/jdk/pull/26597#issuecomment-3174871115