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.

Thanks!

Jiangli


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

Reply via email to