On Thu, 8 Sep 2022 08:08:54 GMT, Aleksey Shipilev <[email protected]> wrote:

> As follow-up to [JDK-8293499](https://bugs.openjdk.org/browse/JDK-8293499), 
> JDK build can stick to lighter jmod compression levels to gain build 
> performance.
> 
> 
> # ----- Baseline
> $ time CONF=linux-x86_64-server-release make clean-images images
> real  0m10.762s
> user  1m5.157s
> sys   0m12.370s
> 
> $ du -sk build/linux-x86_64-server-release/images/jdk/jmods/
> 81480 build/linux-x86_64-server-release/images/jdk/jmods/
> 
> $ time CONF=linux-x86_64-server-release make clean-images images
> real  0m9.574s
> user  1m2.644s
> sys   0m12.143s
> 
> $ du -sk build/linux-x86_64-server-release/images/jdk/jmods/
> 85744 build/linux-x86_64-server-release/images/jdk/jmods/
> 
> 
> This gets even more substantial if JVM is configured with 
> `--with-native-debug-symbols=internal`, in which case `java.base` includes a 
> much larger `libjvm.so`:
> 
> 
> # Baseline
> $ time CONF=linux-x86_64-server-release make clean-images images
> real  0m36.617s
> user  1m30.216s
> sys   0m11.692s
> 
> $ du -sk build/linux-x86_64-server-release/images/jdk/jmods/
> 295428        build/linux-x86_64-server-release/images/jdk/jmods/
> 
> # Patched
> $ time CONF=linux-x86_64-server-release make clean-images images
> real  0m22.183s
> user  1m13.841s
> sys   0m11.657s
> 
> $ du -sk build/linux-x86_64-server-release/images/jdk/jmods/
> 316856        build/linux-x86_64-server-release/images/jdk/jmods/
> 
> 
> Users can use `--with-jmod-compress=zip-6` to get the original JMOD 
> compression level back. Or, they can give up on compression altogether using 
> `--with-jmod-compress=zip-0`, and then reap even more time benefits:
> 
> 
> $ time CONF=linux-x86_64-server-release make clean-images images
> real  0m6.411s
> user  0m56.145s
> sys   0m12.278s
> 
> $ du -sk build/linux-x86_64-server-release/images/jdk/jmods/
> 183752        build/linux-x86_64-server-release/images/jdk/jmods/

I think the only mildly controversial part is the default used when creating 
the packaged modules for the release build. Adding a configure option, creating 
the interim JMODs with --compress zip-0, and changing the default for debug 
releases might be okay.

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

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

Reply via email to