8185853: Generate readability graph at link time and other startup improvements
Alan Bateman
Alan.Bateman at oracle.com
Fri Aug 4 15:48:58 UTC 2017
This is a patch for jdk10/jdk10 to claw back some of the regression to
startup performance in JDK 9 for very short lived applications.
The bulk of the changes are to the "system modules" jlink plugin and the
related code in the module system initialization. Specifically, the
plugin now generates code to create the readability graph for initial
modules known at link time This allows resolution to be skipped at
startup for common cases, it also avoids needing to reconstitute the
module descriptors for modules that will not be resolved (the EE modules
when the initial module is the class path for example). The system
module finder has been significantly changed as part of this but all the
execution scenarios (images, exploded builds, images patched with
exploded build, etc.) that are needed in differetnt JDK development
scenarios work as before.
The patch also includes a few misc. changes to reduce the number of
class loaded during startup and also some local tuning. There is also a
change to the class path initialization to re-fix JDK-6760902 so that
lookup of resources on the boot loader append path (-Xbootclasspath/a)
is aligned with class loading in the VM in the way that it skips empty
path elements. This follows the restoration of tests that Mandy pushed a
few days ago with JDK-8185541.
The webrev with the changes is here:
http://cr.openjdk.java.net/~alanb/8185853/webrev/index.html
-Alan.
More information about the jigsaw-dev
mailing list