RFR: 8214858: Improve module graph archiving

Claes Redestad claes.redestad at oracle.com
Wed Dec 5 15:13:14 UTC 2018


Hi,

a few improvements to how we archive module graph information:

- archive an instance of ArchiveModuleGraph rather than individual fields
- archiving the exportedPackagesToOpen and concealedPackagesToOpen maps 
improve sharing and substantially reduce bytecode executed (~30k)
- archiving the remaining flags in the ArchivedModuleGraph means we no 
longer need to archive SystemModules
   - this means we no longer load jdk.internal.module.SystemModules and 
jdk.internal.module.SystemModules$default at runtime
- for robustness ensure we either resolve either everything or nothing 
from the archive (there are some overlapping safeguards here, e.g., CDS 
is disabled when you run with --limit-modules, but helps to be explicit)

Bugs: https://bugs.openjdk.java.net/browse/JDK-8214858
Webrev: http://cr.openjdk.java.net/~redestad/8214858/jdk.00/

Testing: tier1-3, locally tested all module and CDS tests
Startup tests verify a small speedup on my test setups (around -0.5ms on 
average)

Thanks!

/Claes


More information about the core-libs-dev mailing list