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