RFR: 8293532: Use lighter jmod compression levels in build config [v2]

Aleksey Shipilev shade at openjdk.org
Tue Sep 20 15:00:48 UTC 2022


> 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

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10214/files
  - new: https://git.openjdk.org/jdk/pull/10214/files/4f295018..8246c9d3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10214&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10214&range=00-01

  Stats: 27 lines in 6 files changed: 11 ins; 8 del; 8 mod
  Patch: https://git.openjdk.org/jdk/pull/10214.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10214/head:pull/10214

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



More information about the build-dev mailing list