-
Bug
-
Resolution: Fixed
-
P2
-
9
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.
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.
- relates to
-
JDK-8160564 TEST: Add a test to check the implementation of VersionProps.versionNumbers()
-
- Closed
-
-
JDK-8160457 VersionProps.versionNumbers() is broken
-
- Resolved
-