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.

Reply via email to