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

No value profile for receivers: constructor MethodHandle invocation is very slow

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Closed
    • Priority: P4
    • Resolution: Duplicate
    • Affects Version/s: 8u40, 9
    • Fix Version/s: 9
    • Component/s: core-libs
    • Labels:

      Description

      Originally reported here:
       https://twitter.com/junkdogAP/status/510414300587261952

      Remeasuring with:
       http://cr.openjdk.java.net/~shade/8058319/ConstructorBenchmark.java
       http://cr.openjdk.java.net/~shade/8058319/benchmarks.jar

      ...and current jdk9-dev (with LF caching already here) yields:

       - create_handle 25.301 +- 3.162 ops/us
       - create_handle_unreflect 25.424 +- 0.967 ops/us
       - create_plain 203.557 +- 33.607 ops/us
       - create_reflect 80.443 +- 6.504 ops/us

      Perfasm profiles for plain/reflect cases are relatively clean:
       http://cr.openjdk.java.net/~shade/8058319/create_plain.perfasm
       http://cr.openjdk.java.net/~shade/8058319/create_reflect.perfasm

      We seem to blow inlining in MH cases:
       http://cr.openjdk.java.net/~shade/8058319/create_handle.perfasm
       http://cr.openjdk.java.net/~shade/8058319/create_handle_unreflect.perfasm

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              vlivanov Vladimir Ivanov
              Reporter:
              shade Aleksey Shipilev
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: