RFR: 8214858: Improve module graph archiving

Jiangli Zhou jiangli.zhou at oracle.com
Wed Dec 5 17:53:38 UTC 2018

Hi Claes,

This is awesome. Like the change of encapsulating all the individual 
fields into the single instance of 'archivedModuleGraph'! All the 
improvements look great from subgraph archiving point of view. I'll 
leave the module part to Alan, Mandy and others.



On 12/5/18 7:13 AM, 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)
> Thanks!
> /Claes

More information about the core-libs-dev mailing list