RFR: 8293532: Use lighter jmod compression levels in build config

Magnus Ihse Bursie ihse at openjdk.org
Tue Sep 20 14:23:42 UTC 2022


On Thu, 8 Sep 2022 08:08:54 GMT, Aleksey Shipilev <shade at openjdk.org> 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/

Alans suggestion seems the safest route for now. 

We can always come back later and change the default. If you go down this route, please add the new configure option to the GHA files to speed up GHA release builds, as these are not distributed.

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

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



More information about the build-dev mailing list