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

Runtime.version() cause startup regressions in 9+119

    XMLWordPrintable

Details

    • b119
    • 9
    • b126
    • generic
    • generic
    • Not verified

    Description

      9-b119 introduces startup and footprint performance regressions across most platforms.

      It's been determined this is due to changes in java.util.regex which eagerly initialize java.lang.invoke.LambdaMetafactory, while also creating a number of lambdas. See JDK-81600302 for a related bug to try and reduce the initial startup and footprint hit of loading j.u.regex after 9-b119.

      To address this startup and footprint regression we should simplify the creation of the java.lang.Runtime.Version returned by Runtime.version(): since the constituents are known at build time, and we already generate java.runtime.version property etc into java.lang.VersionProps, putting constants with the constituents in VersionProps will be a good startup optimization.

      ---

      Client applications are showing footprint regressions with Noop/ModNoop (1.5MB), Framer/ModFramer (200kb), and XFramer/ModXFramer(1MB) on linux and Noop/ModNoop (1.5mb) on Windows. Client startup also impacts these same apps, but the magnitudes of these increases are small (nearly 40ms for Noop on linux, but only signgle digit ms for other apps).

      Server footprint is mostly Noop/ModNoop regressions measuring about 2MB, except on Solaris-sparcv9 where it measures 10MB and Solaris-x64 where it measures about 4mb. Jetty shows some minor footprint regressions in Solaris-sarcv9 and Solaris-x64. Server startup is also mostly Noop/ModNoom measuring about 40ms on linux and windows, but up to 80ms on Solaris-sparc and 50ms on Solaris-x86.

      Attachments

        1. Jetty-Linux-x64-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          34 kB
        2. Noop-Linux-x64-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          32 kB
        3. Jetty-Linux-x64-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          34 kB
        4. Noop-Linux-x64-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          32 kB
        5. Jetty-Linux-x64-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          34 kB
        6. Noop-Linux-x64-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          32 kB
        7. Jetty-Linux-x64-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          34 kB
        8. ModNoop-Linux-x64-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          32 kB
        9. Jetty-Linux-x64-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          34 kB
        10. ModNoop-Linux-x64-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          32 kB
        11. Jetty-Linux-x64-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          34 kB
        12. ModNoop-Linux-x64-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          32 kB
        13. Jetty-Solaris-x64-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          25 kB
        14. Noop-Solaris-x64-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          22 kB
        15. Jetty-Solaris-x64-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          25 kB
        16. Noop-Solaris-x64-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          22 kB
        17. Jetty-Solaris-x64-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          25 kB
        18. Noop-Solaris-x64-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          22 kB
        19. Jetty-Solaris-x64-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          25 kB
        20. ModNoop-Solaris-x64-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          22 kB
        21. Jetty-Solaris-x64-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          25 kB
        22. ModNoop-Solaris-x64-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          22 kB
        23. Jetty-Solaris-x64-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          25 kB
        24. ModNoop-Solaris-x64-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          22 kB
        25. Jetty-Solaris-sparcv9-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          25 kB
        26. Noop-Solaris-sparcv9-Footprint3-Server-9-b119_vs_9-b118-Diff.out
          22 kB
        27. Jetty-Solaris-sparcv9-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          25 kB
        28. Noop-Solaris-sparcv9-Footprint3-Server-CMS-9-b119_vs_9-b118-Diff.out
          22 kB
        29. Noop-Solaris-sparcv9-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          22 kB
        30. Jetty-Solaris-sparcv9-Footprint3-Server-G1-9-b119_vs_9-b118-Diff.out
          25 kB
        31. Jetty-Solaris-sparcv9-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          25 kB
        32. ModNoop-Solaris-sparcv9-Footprint3-Server-JDK9-9-b119_vs_9-b118-Diff.out
          22 kB
        33. Jetty-Solaris-sparcv9-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          25 kB
        34. ModNoop-Solaris-sparcv9-Footprint3-Server-JDK9-CMS-9-b119_vs_9-b118-Diff.out
          22 kB
        35. Jetty-Solaris-sparcv9-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          25 kB
        36. ModNoop-Solaris-sparcv9-Footprint3-Server-JDK9-G1-9-b119_vs_9-b118-Diff.out
          22 kB
        37. Noop-Linux-x86-Footprint3-Client-9-b119_vs_9-b118-Diff.out
          31 kB
        38. XFramer-Linux-x86-Footprint3-Client-9-b119_vs_9-b118-Diff.out
          50 kB
        39. Framer-Linux-x86-Footprint3-Client-9-b119_vs_9-b118-Diff.out
          50 kB
        40. ModNoop-Linux-x86-Footprint3-Client-JDK9-9-b119_vs_9-b118-Diff.out
          31 kB
        41. ModFramer-Linux-x86-Footprint3-Client-JDK9-9-b119_vs_9-b118-Diff.out
          50 kB
        42. ModXFramer-Linux-x86-Footprint3-Client-JDK9-9-b119_vs_9-b118-Diff.out
          50 kB

        Issue Links

          Activity

            People

              redestad Claes Redestad
              briand Brian Doherty (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: