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