On Tue, 20 Sep 2022 15:00:48 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/
>
> Aleksey Shipilev has updated the pull request incrementally with three 
> additional commits since the last revision:
> 
>  - Typos
>  - GHA should use the zip-1 level across all builds
>  - Move detection and defaults to configure, select compression based on 
> release/debug

All right then. See new commits:
 - release builds with `zip-6` (default) -- still improves a bit, because 
interim jmods are not compressed
 - fastdebug builds with `zip-1` -- favoring speed over disk size
 - GHA release/fastdebug build with `zip-1` -- to gain build perf without 
incurring too much network/storage overhead;

Sample improvements for `make clean-images images`:


# Linux x86_64 release

# Baseline
real    0m10.583s
user    1m3.106s
sys     0m11.806s

# Patched
real    0m10.430s
user    1m2.314s
sys     0m11.678s


# Linux x86_64 fastdebug

# Baseline
real    0m17.388s
user    2m47.504s
sys     0m17.616s

# Patched
real    0m15.713s
user    2m41.490s
sys     0m20.843s

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

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

Reply via email to