RFR: 8214858: Improve module graph archiving

Alan Bateman Alan.Bateman at oracle.com
Thu Dec 6 08:56:35 UTC 2018

On 05/12/2018 15:13, Claes Redestad wrote:
> 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)
I think these changes look okay.

Once we get to the point of not permitting illegal access by default 
then we might look at this again as the concealed/exported maps won't be 
needed for the default case.


More information about the core-libs-dev mailing list