Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8362893

Improve performance for MemorySegment::getString

XMLWordPrintable

      It seems the creation of the temporary array in the implementation of `MemorySegment::getString` is not elided.

      In an experimental patch, JavaLangAccess::uncheckedNewStringNoRepl in StringSupport, which looks promising:


      Base:
      ToJavaStringTest.panama_readString 5 avgt 30 13.559 ± 0.246 ns/op
      ToJavaStringTest.panama_readString 20 avgt 30 67.047 ± 7.541 ns/op <- Slow
      ToJavaStringTest.panama_readString 100 avgt 30 28.092 ± 0.547 ns/op
      ToJavaStringTest.panama_readString 200 avgt 30 37.679 ± 0.645 ns/op
      ToJavaStringTest.panama_readString 451 avgt 30 64.544 ± 1.096 ns/op

      Experimental Patch:
      ToJavaStringTest.panama_readString 5 avgt 30 8.847 ± 0.178 ns/op
      ToJavaStringTest.panama_readString 20 avgt 30 20.332 ± 4.495 ns/op
      ToJavaStringTest.panama_readString 100 avgt 30 21.808 ± 0.315 ns/op
      ToJavaStringTest.panama_readString 200 avgt 30 28.711 ± 0.105 ns/op
      ToJavaStringTest.panama_readString 451 avgt 30 51.806 ± 1.067 ns/op

      The actual solution to the problem might also be to ensure code gets inlined.

            pminborg Per-Ake Minborg
            pminborg Per-Ake Minborg
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: