RFR: 8309502: RISC-V: String.indexOf intrinsic may produce misaligned memory loads [v7]

Vladimir Kempik vkempik at openjdk.org
Tue Jun 13 21:32:12 UTC 2023


On Tue, 13 Jun 2023 12:57:38 GMT, Vladimir Kempik <vkempik at openjdk.org> wrote:

>> Please review this attempt to remove misaligned loads in String.indexOf intrinsic on RISC-V
>> 
>> Initialy found these misaligned loads when profiling finagle-http test from renaissance suite.
>> The majority of trp_lam events (about 66k per finagle-http round) came at line 706 (https://github.com/openjdk/jdk/pull/14320/files#diff-35eb1d2f1e2f0514dd46bd7fbad49ff2c87703d5a3041a6433956df00a3fe6e6L706)
>> The other two produced about 100 events combined.
>> Later I've found this can partially be reproduced with StringIndexOf.advancedWithMediumSub.
>> Numbers on hifive before and after applying the patch:
>> 
>> 
>> Benchmark                                                  Mode  Cnt       Score      Error  Units
>> StringIndexOf.advancedWithMediumSub                        avgt   25   47031.406 ±  144.005  ns/op
>> 
>> 
>> After:
>> 
>> Benchmark                                                 Mode  Cnt       Score     Error  Units
>> StringIndexOf.advancedWithMediumSub                       avgt   25    4256.830 ±  23.075  ns/op
>> 
>> 
>> Testing: tier1/tier2 is clean on hifive.
>
> Vladimir Kempik has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix nits

jmh results, StringIndexOf
advancedWithShortSubXChars - three new tests which test speed of linear search with needle of size X

before:

Benchmark                                                 (loops)  (pathCnt)  (rngSeed)  Mode  Cnt       Score     Error  Units
StringIndexOf.advancedWithMediumSub                           N/A        N/A        N/A  avgt   25   47184.829 ± 227.340  ns/op
StringIndexOf.advancedWithShortSub1                           N/A        N/A        N/A  avgt   25    4121.931 ± 194.659  ns/op
StringIndexOf.advancedWithShortSub2                           N/A        N/A        N/A  avgt   25     992.714 ±  24.638  ns/op
StringIndexOf.advancedWithShortSub2Chars                      N/A        N/A        N/A  avgt   25   37315.528 ±  61.079  ns/op
StringIndexOf.advancedWithShortSub3Chars                      N/A        N/A        N/A  avgt   25   37316.547 ±  26.079  ns/op
StringIndexOf.advancedWithShortSub4Chars                      N/A        N/A        N/A  avgt   25   69367.409 ± 117.164  ns/op
StringIndexOf.constantPattern                                 N/A        N/A        N/A  avgt   25      73.671 ±   3.551  ns/op
StringIndexOf.searchChar16LongSuccess                         N/A        N/A        N/A  avgt   25     251.513 ±   3.103  ns/op
StringIndexOf.searchChar16LongWithOffsetSuccess               N/A        N/A        N/A  avgt   25     258.523 ±   2.925  ns/op
StringIndexOf.searchChar16MediumSuccess                       N/A        N/A        N/A  avgt   25     134.067 ±   3.635  ns/op
StringIndexOf.searchChar16MediumWithOffsetSuccess             N/A        N/A        N/A  avgt   25     146.327 ±   3.257  ns/op
StringIndexOf.searchChar16ShortSuccess                        N/A        N/A        N/A  avgt   25      35.564 ±   2.468  ns/op
StringIndexOf.searchChar16ShortWithOffsetSuccess              N/A        N/A        N/A  avgt   25      40.607 ±   3.270  ns/op
StringIndexOf.searchCharLongSuccess                           N/A        N/A        N/A  avgt   25     122.948 ±   4.485  ns/op
StringIndexOf.searchCharMediumSuccess                         N/A        N/A        N/A  avgt   25      63.505 ±   2.645  ns/op
StringIndexOf.searchCharShortSuccess                          N/A        N/A        N/A  avgt   25      33.107 ±   2.404  ns/op
StringIndexOf.searchString16LongLatinSuccess                  N/A        N/A        N/A  avgt   25     504.675 ±   6.297  ns/op
StringIndexOf.searchString16LongSuccess                       N/A        N/A        N/A  avgt   25     628.733 ±   3.652  ns/op
StringIndexOf.searchString16LongWithOffsetLatinSuccess        N/A        N/A        N/A  avgt   25     325.615 ±   3.355  ns/op
StringIndexOf.searchString16LongWithOffsetSuccess             N/A        N/A        N/A  avgt   25     343.145 ±   3.068  ns/op
StringIndexOf.searchString16MediumLatinSuccess                N/A        N/A        N/A  avgt   25     226.349 ±   3.635  ns/op
StringIndexOf.searchString16MediumSuccess                     N/A        N/A        N/A  avgt   25     279.963 ±   3.536  ns/op
StringIndexOf.searchString16MediumWithOffsetLatinSuccess      N/A        N/A        N/A  avgt   25     161.672 ±   3.024  ns/op
StringIndexOf.searchString16MediumWithOffsetSuccess           N/A        N/A        N/A  avgt   25     162.722 ±   3.598  ns/op
StringIndexOf.searchString16ShortLatinSuccess                 N/A        N/A        N/A  avgt   25     322.307 ±   3.027  ns/op
StringIndexOf.searchString16ShortSuccess                      N/A        N/A        N/A  avgt   25      55.243 ±   3.518  ns/op
StringIndexOf.searchString16ShortWithOffsetLatinSuccess       N/A        N/A        N/A  avgt   25      55.825 ±   2.582  ns/op
StringIndexOf.searchString16ShortWithOffsetSuccess            N/A        N/A        N/A  avgt   25      54.268 ±   3.709  ns/op
StringIndexOf.success                                         N/A        N/A        N/A  avgt   25      80.776 ±   2.500  ns/op
StringIndexOf.successBig                                      N/A        N/A        N/A  avgt   25    6283.167 ±  11.876  ns/op
StringIndexOfChar.latin1_AVX2_String                       100000       1000       1999  avgt   25  206802.394 ± 598.649  ns/op
StringIndexOfChar.latin1_AVX2_char                         100000       1000       1999  avgt   25  103587.559 ± 214.802  ns/op
StringIndexOfChar.latin1_SSE4_String                       100000       1000       1999  avgt   25  121714.481 ± 118.594  ns/op
StringIndexOfChar.latin1_SSE4_char                         100000       1000       1999  avgt   25   75014.737 ± 178.044  ns/op
StringIndexOfChar.latin1_Short_String                      100000       1000       1999  avgt   25  116975.364 ±  90.326  ns/op
StringIndexOfChar.latin1_Short_char                        100000       1000       1999  avgt   25   81844.387 ± 230.281  ns/op
StringIndexOfChar.latin1_mixed_String                      100000       1000       1999  avgt   25  210860.343 ± 159.635  ns/op
StringIndexOfChar.latin1_mixed_char                        100000       1000       1999  avgt   25  117095.518 ± 204.476  ns/op
StringIndexOfChar.utf16_AVX2_String                        100000       1000       1999  avgt   25  100868.093 ± 136.887  ns/op
StringIndexOfChar.utf16_AVX2_char                          100000       1000       1999  avgt   25   80257.944 ± 208.123  ns/op
StringIndexOfChar.utf16_SSE4_String                        100000       1000       1999  avgt   25   74831.080 ± 284.069  ns/op
StringIndexOfChar.utf16_SSE4_char                          100000       1000       1999  avgt   25   64963.525 ± 113.680  ns/op
StringIndexOfChar.utf16_Short_String                       100000       1000       1999  avgt   25   72531.734 ± 209.899  ns/op
StringIndexOfChar.utf16_Short_char                         100000       1000       1999  avgt   25   70835.907 ± 202.187  ns/op
StringIndexOfChar.utf16_mixed_String                       100000       1000       1999  avgt   25  162457.612 ± 178.987  ns/op
StringIndexOfChar.utf16_mixed_char                         100000       1000       1999  avgt   25  149974.738 ± 320.802  ns/op


Hifive, after:

Benchmark                                                 (loops)  (pathCnt)  (rngSeed)  Mode  Cnt       Score     Error  Units
StringIndexOf.advancedWithMediumSub                           N/A        N/A        N/A  avgt   25    4276.564 ±  39.149  ns/op
StringIndexOf.advancedWithShortSub1                           N/A        N/A        N/A  avgt   25    4149.350 ± 209.233  ns/op
StringIndexOf.advancedWithShortSub2                           N/A        N/A        N/A  avgt   25    1128.838 ±  20.157  ns/op
StringIndexOf.advancedWithShortSub2Chars                      N/A        N/A        N/A  avgt   25    1277.692 ±  13.031  ns/op
StringIndexOf.advancedWithShortSub3Chars                      N/A        N/A        N/A  avgt   25    1313.186 ±   9.654  ns/op
StringIndexOf.advancedWithShortSub4Chars                      N/A        N/A        N/A  avgt   25    2488.046 ±   8.964  ns/op
StringIndexOf.constantPattern                                 N/A        N/A        N/A  avgt   25      79.567 ±   5.082  ns/op
StringIndexOf.searchChar16LongSuccess                         N/A        N/A        N/A  avgt   25     251.484 ±   3.302  ns/op
StringIndexOf.searchChar16LongWithOffsetSuccess               N/A        N/A        N/A  avgt   25     256.214 ±   3.778  ns/op
StringIndexOf.searchChar16MediumSuccess                       N/A        N/A        N/A  avgt   25     133.622 ±   3.497  ns/op
StringIndexOf.searchChar16MediumWithOffsetSuccess             N/A        N/A        N/A  avgt   25     139.377 ±   3.008  ns/op
StringIndexOf.searchChar16ShortSuccess                        N/A        N/A        N/A  avgt   25      35.788 ±   2.936  ns/op
StringIndexOf.searchChar16ShortWithOffsetSuccess              N/A        N/A        N/A  avgt   25      37.000 ±   2.983  ns/op
StringIndexOf.searchCharLongSuccess                           N/A        N/A        N/A  avgt   25     124.275 ±   4.894  ns/op
StringIndexOf.searchCharMediumSuccess                         N/A        N/A        N/A  avgt   25      65.132 ±   3.882  ns/op
StringIndexOf.searchCharShortSuccess                          N/A        N/A        N/A  avgt   25      35.020 ±   3.418  ns/op
StringIndexOf.searchString16LongLatinSuccess                  N/A        N/A        N/A  avgt   25     595.135 ±   5.635  ns/op
StringIndexOf.searchString16LongSuccess                       N/A        N/A        N/A  avgt   25     630.710 ±   3.627  ns/op
StringIndexOf.searchString16LongWithOffsetLatinSuccess        N/A        N/A        N/A  avgt   25     321.968 ±   3.086  ns/op
StringIndexOf.searchString16LongWithOffsetSuccess             N/A        N/A        N/A  avgt   25     344.868 ±   5.492  ns/op
StringIndexOf.searchString16MediumLatinSuccess                N/A        N/A        N/A  avgt   25     268.289 ±   7.435  ns/op
StringIndexOf.searchString16MediumSuccess                     N/A        N/A        N/A  avgt   25     276.393 ±   3.831  ns/op
StringIndexOf.searchString16MediumWithOffsetLatinSuccess      N/A        N/A        N/A  avgt   25     161.604 ±   2.949  ns/op
StringIndexOf.searchString16MediumWithOffsetSuccess           N/A        N/A        N/A  avgt   25     166.575 ±   3.478  ns/op
StringIndexOf.searchString16ShortLatinSuccess                 N/A        N/A        N/A  avgt   25     390.758 ±   5.794  ns/op
StringIndexOf.searchString16ShortSuccess                      N/A        N/A        N/A  avgt   25      55.287 ±   4.530  ns/op
StringIndexOf.searchString16ShortWithOffsetLatinSuccess       N/A        N/A        N/A  avgt   25      48.239 ±   1.333  ns/op
StringIndexOf.searchString16ShortWithOffsetSuccess            N/A        N/A        N/A  avgt   25      51.657 ±   2.762  ns/op
StringIndexOf.success                                         N/A        N/A        N/A  avgt   25      83.580 ±   3.200  ns/op
StringIndexOf.successBig                                      N/A        N/A        N/A  avgt   25    6253.601 ±  13.245  ns/op
StringIndexOfChar.latin1_AVX2_String                       100000       1000       1999  avgt   25  180259.333 ± 428.243  ns/op
StringIndexOfChar.latin1_AVX2_char                         100000       1000       1999  avgt   25  103301.911 ± 157.780  ns/op
StringIndexOfChar.latin1_SSE4_String                       100000       1000       1999  avgt   25  106739.090 ± 206.242  ns/op
StringIndexOfChar.latin1_SSE4_char                         100000       1000       1999  avgt   25   75027.524 ± 208.941  ns/op
StringIndexOfChar.latin1_Short_String                      100000       1000       1999  avgt   25  102724.833 ± 231.911  ns/op
StringIndexOfChar.latin1_Short_char                        100000       1000       1999  avgt   25   81018.525 ± 138.541  ns/op
StringIndexOfChar.latin1_mixed_String                      100000       1000       1999  avgt   25  184633.008 ± 209.443  ns/op
StringIndexOfChar.latin1_mixed_char                        100000       1000       1999  avgt   25  116350.746 ± 298.832  ns/op
StringIndexOfChar.utf16_AVX2_String                        100000       1000       1999  avgt   25  110819.605 ± 137.955  ns/op
StringIndexOfChar.utf16_AVX2_char                          100000       1000       1999  avgt   25   79956.001 ± 254.436  ns/op
StringIndexOfChar.utf16_SSE4_String                        100000       1000       1999  avgt   25   75500.341 ± 186.736  ns/op
StringIndexOfChar.utf16_SSE4_char                          100000       1000       1999  avgt   25   64974.675 ± 211.639  ns/op
StringIndexOfChar.utf16_Short_String                       100000       1000       1999  avgt   25   71304.026 ± 163.559  ns/op
StringIndexOfChar.utf16_Short_char                         100000       1000       1999  avgt   25   70843.242 ± 173.108  ns/op
StringIndexOfChar.utf16_mixed_String                       100000       1000       1999  avgt   25  191690.983 ± 301.041  ns/op
StringIndexOfChar.utf16_mixed_char                         100000       1000       1999  avgt   25  149988.445 ± 175.224  ns/op


Thead, before:


Benchmark                                                 (loops)  (pathCnt)  (rngSeed)  Mode  Cnt       Score      Error  Units
StringIndexOf.advancedWithMediumSub                           N/A        N/A        N/A  avgt   25    2734.898 ±   61.540  ns/op
StringIndexOf.advancedWithShortSub1                           N/A        N/A        N/A  avgt   25    2440.471 ±   90.996  ns/op
StringIndexOf.advancedWithShortSub2                           N/A        N/A        N/A  avgt   25     722.081 ±   29.674  ns/op
StringIndexOf.advancedWithShortSub2Chars                      N/A        N/A        N/A  avgt   25     679.410 ±    5.793  ns/op
StringIndexOf.advancedWithShortSub3Chars                      N/A        N/A        N/A  avgt   25     875.206 ±   26.224  ns/op
StringIndexOf.advancedWithShortSub4Chars                      N/A        N/A        N/A  avgt   25     747.692 ±    5.600  ns/op
StringIndexOf.constantPattern                                 N/A        N/A        N/A  avgt   25      69.154 ±    0.647  ns/op
StringIndexOf.searchChar16LongSuccess                         N/A        N/A        N/A  avgt   25     172.494 ±    0.754  ns/op
StringIndexOf.searchChar16LongWithOffsetSuccess               N/A        N/A        N/A  avgt   25     177.181 ±    0.126  ns/op
StringIndexOf.searchChar16MediumSuccess                       N/A        N/A        N/A  avgt   25     106.646 ±    1.143  ns/op
StringIndexOf.searchChar16MediumWithOffsetSuccess             N/A        N/A        N/A  avgt   25     109.219 ±    1.165  ns/op
StringIndexOf.searchChar16ShortSuccess                        N/A        N/A        N/A  avgt   25      40.604 ±    0.316  ns/op
StringIndexOf.searchChar16ShortWithOffsetSuccess              N/A        N/A        N/A  avgt   25      40.440 ±    0.514  ns/op
StringIndexOf.searchCharLongSuccess                           N/A        N/A        N/A  avgt   25      96.637 ±    0.335  ns/op
StringIndexOf.searchCharMediumSuccess                         N/A        N/A        N/A  avgt   25      60.237 ±    1.648  ns/op
StringIndexOf.searchCharShortSuccess                          N/A        N/A        N/A  avgt   25      37.428 ±    0.623  ns/op
StringIndexOf.searchString16LongLatinSuccess                  N/A        N/A        N/A  avgt   25     277.862 ±   12.231  ns/op
StringIndexOf.searchString16LongSuccess                       N/A        N/A        N/A  avgt   25     332.158 ±    0.254  ns/op
StringIndexOf.searchString16LongWithOffsetLatinSuccess        N/A        N/A        N/A  avgt   25     398.582 ±    0.380  ns/op
StringIndexOf.searchString16LongWithOffsetSuccess             N/A        N/A        N/A  avgt   25     422.520 ±    0.153  ns/op
StringIndexOf.searchString16MediumLatinSuccess                N/A        N/A        N/A  avgt   25     135.033 ±    2.969  ns/op
StringIndexOf.searchString16MediumSuccess                     N/A        N/A        N/A  avgt   25     157.165 ±    0.459  ns/op
StringIndexOf.searchString16MediumWithOffsetLatinSuccess      N/A        N/A        N/A  avgt   25     178.419 ±    1.152  ns/op
StringIndexOf.searchString16MediumWithOffsetSuccess           N/A        N/A        N/A  avgt   25     189.184 ±    0.507  ns/op
StringIndexOf.searchString16ShortLatinSuccess                 N/A        N/A        N/A  avgt   25     189.720 ±    5.050  ns/op
StringIndexOf.searchString16ShortSuccess                      N/A        N/A        N/A  avgt   25      48.456 ±    0.015  ns/op
StringIndexOf.searchString16ShortWithOffsetLatinSuccess       N/A        N/A        N/A  avgt   25      41.523 ±    0.261  ns/op
StringIndexOf.searchString16ShortWithOffsetSuccess            N/A        N/A        N/A  avgt   25      44.079 ±    0.142  ns/op
StringIndexOf.success                                         N/A        N/A        N/A  avgt   25      56.303 ±    0.506  ns/op
StringIndexOf.successBig                                      N/A        N/A        N/A  avgt   25     240.224 ±    0.718  ns/op
StringIndexOfChar.latin1_AVX2_String                       100000       1000       1999  avgt   25  151718.306 ±  697.735  ns/op
StringIndexOfChar.latin1_AVX2_char                         100000       1000       1999  avgt   25  101266.052 ±  975.917  ns/op
StringIndexOfChar.latin1_SSE4_String                       100000       1000       1999  avgt   25  101792.535 ±  341.851  ns/op
StringIndexOfChar.latin1_SSE4_char                         100000       1000       1999  avgt   25   55309.860 ±  154.954  ns/op
StringIndexOfChar.latin1_Short_String                      100000       1000       1999  avgt   25   94692.722 ±  413.354  ns/op
StringIndexOfChar.latin1_Short_char                        100000       1000       1999  avgt   25   60527.606 ±  534.854  ns/op
StringIndexOfChar.latin1_mixed_String                      100000       1000       1999  avgt   25  154694.070 ±  323.422  ns/op
StringIndexOfChar.latin1_mixed_char                        100000       1000       1999  avgt   25  102887.596 ±  123.646  ns/op
StringIndexOfChar.utf16_AVX2_String                        100000       1000       1999  avgt   25  102949.366 ± 2005.041  ns/op
StringIndexOfChar.utf16_AVX2_char                          100000       1000       1999  avgt   25   57791.800 ±  104.712  ns/op
StringIndexOfChar.utf16_SSE4_String                        100000       1000       1999  avgt   25   62716.138 ±  163.635  ns/op
StringIndexOfChar.utf16_SSE4_char                          100000       1000       1999  avgt   25   46677.973 ±  161.807  ns/op
StringIndexOfChar.utf16_Short_String                       100000       1000       1999  avgt   25   56375.027 ±  486.974  ns/op
StringIndexOfChar.utf16_Short_char                         100000       1000       1999  avgt   25   50512.176 ±  383.844  ns/op
StringIndexOfChar.utf16_mixed_String                       100000       1000       1999  avgt   25  145740.443 ±  484.267  ns/op
StringIndexOfChar.utf16_mixed_char                         100000       1000       1999  avgt   25  127834.969 ±  130.643  ns/op


thead, after:

Benchmark                                                 (loops)  (pathCnt)  (rngSeed)  Mode  Cnt       Score      Error  Units
StringIndexOf.advancedWithMediumSub                           N/A        N/A        N/A  avgt   25    3377.943 ±   42.496  ns/op
StringIndexOf.advancedWithShortSub1                           N/A        N/A        N/A  avgt   25    2567.466 ±   57.557  ns/op
StringIndexOf.advancedWithShortSub2                           N/A        N/A        N/A  avgt   25     844.403 ±    6.488  ns/op
StringIndexOf.advancedWithShortSub2Chars                      N/A        N/A        N/A  avgt   25     892.346 ±   11.231  ns/op
StringIndexOf.advancedWithShortSub3Chars                      N/A        N/A        N/A  avgt   25     942.688 ±   19.306  ns/op
StringIndexOf.advancedWithShortSub4Chars                      N/A        N/A        N/A  avgt   25     761.535 ±   20.112  ns/op
StringIndexOf.constantPattern                                 N/A        N/A        N/A  avgt   25      75.172 ±    0.294  ns/op
StringIndexOf.searchChar16LongSuccess                         N/A        N/A        N/A  avgt   25     172.765 ±    1.537  ns/op
StringIndexOf.searchChar16LongWithOffsetSuccess               N/A        N/A        N/A  avgt   25     177.554 ±    0.515  ns/op
StringIndexOf.searchChar16MediumSuccess                       N/A        N/A        N/A  avgt   25     105.234 ±    1.079  ns/op
StringIndexOf.searchChar16MediumWithOffsetSuccess             N/A        N/A        N/A  avgt   25     107.671 ±    1.415  ns/op
StringIndexOf.searchChar16ShortSuccess                        N/A        N/A        N/A  avgt   25      40.933 ±    0.015  ns/op
StringIndexOf.searchChar16ShortWithOffsetSuccess              N/A        N/A        N/A  avgt   25      42.273 ±    2.262  ns/op
StringIndexOf.searchCharLongSuccess                           N/A        N/A        N/A  avgt   25      99.018 ±    1.945  ns/op
StringIndexOf.searchCharMediumSuccess                         N/A        N/A        N/A  avgt   25      62.872 ±    3.143  ns/op
StringIndexOf.searchCharShortSuccess                          N/A        N/A        N/A  avgt   25      36.762 ±    0.029  ns/op
StringIndexOf.searchString16LongLatinSuccess                  N/A        N/A        N/A  avgt   25     395.942 ±    0.239  ns/op
StringIndexOf.searchString16LongSuccess                       N/A        N/A        N/A  avgt   25     328.769 ±    0.298  ns/op
StringIndexOf.searchString16LongWithOffsetLatinSuccess        N/A        N/A        N/A  avgt   25     312.369 ±    0.601  ns/op
StringIndexOf.searchString16LongWithOffsetSuccess             N/A        N/A        N/A  avgt   25     422.857 ±    0.483  ns/op
StringIndexOf.searchString16MediumLatinSuccess                N/A        N/A        N/A  avgt   25     175.366 ±    0.034  ns/op
StringIndexOf.searchString16MediumSuccess                     N/A        N/A        N/A  avgt   25     153.542 ±    0.474  ns/op
StringIndexOf.searchString16MediumWithOffsetLatinSuccess      N/A        N/A        N/A  avgt   25     146.393 ±    0.080  ns/op
StringIndexOf.searchString16MediumWithOffsetSuccess           N/A        N/A        N/A  avgt   25     175.485 ±   12.868  ns/op
StringIndexOf.searchString16ShortLatinSuccess                 N/A        N/A        N/A  avgt   25     253.175 ±    1.237  ns/op
StringIndexOf.searchString16ShortSuccess                      N/A        N/A        N/A  avgt   25      46.278 ±    0.316  ns/op
StringIndexOf.searchString16ShortWithOffsetLatinSuccess       N/A        N/A        N/A  avgt   25      42.041 ±    0.566  ns/op
StringIndexOf.searchString16ShortWithOffsetSuccess            N/A        N/A        N/A  avgt   25      44.513 ±    0.976  ns/op
StringIndexOf.success                                         N/A        N/A        N/A  avgt   25      58.469 ±    0.017  ns/op
StringIndexOf.successBig                                      N/A        N/A        N/A  avgt   25     240.645 ±    0.649  ns/op
StringIndexOfChar.latin1_AVX2_String                       100000       1000       1999  avgt   25  137297.837 ± 1618.438  ns/op
StringIndexOfChar.latin1_AVX2_char                         100000       1000       1999  avgt   25   99919.463 ±  264.771  ns/op
StringIndexOfChar.latin1_SSE4_String                       100000       1000       1999  avgt   25   93552.042 ±  412.514  ns/op
StringIndexOfChar.latin1_SSE4_char                         100000       1000       1999  avgt   25   55130.042 ±  228.381  ns/op
StringIndexOfChar.latin1_Short_String                      100000       1000       1999  avgt   25   93682.963 ±  448.951  ns/op
StringIndexOfChar.latin1_Short_char                        100000       1000       1999  avgt   25   60450.415 ±  544.678  ns/op
StringIndexOfChar.latin1_mixed_String                      100000       1000       1999  avgt   25  139723.661 ±  656.951  ns/op
StringIndexOfChar.latin1_mixed_char                        100000       1000       1999  avgt   25  102253.415 ±  189.882  ns/op
StringIndexOfChar.utf16_AVX2_String                        100000       1000       1999  avgt   25  101267.586 ±  437.666  ns/op
StringIndexOfChar.utf16_AVX2_char                          100000       1000       1999  avgt   25   58385.242 ±  423.666  ns/op
StringIndexOfChar.utf16_SSE4_String                        100000       1000       1999  avgt   25   61231.849 ±  111.539  ns/op
StringIndexOfChar.utf16_SSE4_char                          100000       1000       1999  avgt   25   46524.978 ±  171.727  ns/op
StringIndexOfChar.utf16_Short_String                       100000       1000       1999  avgt   25   56955.300 ±  115.976  ns/op
StringIndexOfChar.utf16_Short_char                         100000       1000       1999  avgt   25   50042.089 ±  353.580  ns/op
StringIndexOfChar.utf16_mixed_String                       100000       1000       1999  avgt   25  156943.226 ±  260.089  ns/op
StringIndexOfChar.utf16_mixed_char                         100000       1000       1999  avgt   25  129073.240 ±  124.931  ns/op

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14320#issuecomment-1590050223


More information about the hotspot-compiler-dev mailing list