RFR: JDK-8166948: Exploded image too slow to be usable
Chris Hegarty
chris.hegarty at oracle.com
Fri Sep 30 09:43:06 UTC 2016
On 30/09/16 09:03, Erik Joelsson wrote:
> During the build process, we create an exploded image as an interim step
> before linking the real JDK and JRE images. This exploded image is used
> both for running certain build tools during the build but is also used
> by developers when needing a quick build-test cycle since the exploded
> image is much faster to build incrementally.
>
> Lately, with newer Jigsaw features, the exploded image has become very
> slow to run. This is caused by the runtime needing to index all packages
> in all modules at startup. In a linked image, this data is pregenerated,
> but in the exploded case, it's not. There have been reports of this
> taking up to 4-5 seconds on certain configurations.
>
> To fix this, we can add a new build tool that is run on the exploded
> image, which updates the module-info.class files with this package
> index. This will also have the benefit of also speeding up jmod and
> jlink when run during the build.
>
> Alan provided the tool and I have modified the build to use it.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8166948
>
> Webrev: http://cr.openjdk.java.net/~erikj/8166948/webrev.01/
Ooh, this is quite clever, levering the already computed packages
list from the running VM to add the packages attribute to the module
info. One minor concern ( which I think should be ok ) is the
updating of the module-info.class files of the running VM. ( I
think this is ok, as these files should be read once at start up.
Additionally, do you want to run with --add-modules java.se.ee to
include the 6 "EE" modules?
-Chris.
More information about the build-dev
mailing list