On Mon, 29 Aug 2022 09:18:16 GMT, Alan Bateman <al...@openjdk.org> wrote:

> This issue will require discussion as it potentially impacts usage at 
> run-time when the resolver runs at startup or when creating module layers. 

Startup with/without CDS:


$ perf stat -r 100 build/linux-x86_64-server-release/images/jdk/bin/java Hello

# Baseline
 With CDS: 0.0323543 +- 0.0000789 seconds time elapsed  ( +-  0.24% )
 Without CDS: 0.071471 +- 0.000500 seconds time elapsed  ( +-  0.70% )

# Patched
 With CDS: 0.0328651 +- 0.0000780 seconds time elapsed  ( +-  0.24% )
 Without CDS:  0.072745 +- 0.000472 seconds time elapsed  ( +-  0.65% )


So there seem to be some minor impact, but nothing drastic. I would be very 
surprised if we actually verified the module hashes at startup! That would take 
minutes to startup on Zero, as observed by its build-time checking. And we 
don't see that, apparently.

> I also wonder if it has an impact on JDK builds where many jobs are running 
> jmod at the same time. It may be that this has to be configured by a system 
> property so that it can be enabled only in the JDK build.

The normal build already runs a lot of `jmod`-s at once. But that would not 
help when you have the fat `jmod java.base` at the end of the build, where no 
external parallelism exists. At that point, internal `Resolver` parallelism 
helps a lot.

> Also just to say that Claes removed all the lambda expressions from this code 
> in JDK 9 to help with startup as that will have to checking too. Also if we 
> are changing this code then we should try to keep the 
> style/conventions/line-lengths consistent where possible.

I reverted some brace changes.

-------------

PR: https://git.openjdk.org/jdk/pull/10060

Reply via email to