The splashscreen lib is currently built with LOW optimization. This might be fine because it is not very performance critical (and LOW is not really low when looking at the opt-flags used). But building it with SIZE optimization makes it 10-20 % smaller on some platforms which helps to reduce image size.
current settings (LOW optimization) : --------------------------------------------------- 2.5M /aix_ppc64/jdk-opt/images/jdk/lib/libsplashscreen.so 468K /macosaarch64/jdk-opt/images/jdk/lib/libsplashscreen.dylib 1.6M /macosaarch64/jdk-opt/images/jdk/lib/libsplashscreen.dylib.dSYM 388K /macosintel64/jdk-opt/images/jdk/lib/libsplashscreen.dylib 1.5M /macosintel64/jdk-opt/images/jdk/lib/libsplashscreen.dylib.dSYM 368K /linux_aarch64/jdk-opt/images/jdk/lib/libsplashscreen.so 1.7M /linux_aarch64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo 376K /linux_alpine_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.so 1.8M /linux_alpine_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo 500K /linux_ppc64le/jdk-opt/images/jdk/lib/libsplashscreen.so 1.7M /linux_ppc64le/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo 364K /linux_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.so 1.7M /linux_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo new settings (SIZE optimization) : -------------------------------------------------- 2.1M /aix_ppc64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so 404K /macosaarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib 1.5M /macosaarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib.dSYM 316K /macosintel64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib 1.4M /macosintel64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib.dSYM 372K /linux_aarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so 1.5M /linux_aarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo 304K /linux_alpine_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so 1.5M /linux_alpine_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo 376K /linux_ppc64le/jdk-dev-opt/images/jdk/lib/libsplashscreen.so 1.4M /linux_ppc64le/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo 304K /linux_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so 1.4M /linux_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo On Linux aarch64 only the debuginfo shrinks but the lib stays about the same in size. Maybe -Os does not work as well on this platform. Other UNIX platforms have a reduction by ~ 10-20 % . For Windows, LOW and SIZE optimization have currently the same O - flags so no reduction. Build times are the same on Windows (because LOW and SIZE are currently 'optimize for size'). On Linux x86_64 it seems that the build times of java.desktop native libs get slightly better but only very little. time make java.desktop-libs-only JOBS=1 LOW (current) real 5m38.074s user 4m16.709s sys 0m26.335s real 5m29.081s user 4m17.838s sys 0m26.749s real 5m25.496s user 4m17.906s sys 0m25.506s SIZE for libsplashscreen real 5m18.468s user 4m13.024s sys 0m25.129s real 5m31.944s user 4m12.922s sys 0m26.333s real 5m12.874s user 4m12.253s sys 0m25.206s real has a bit of variance but user time is 4m16 / 4m17 for LOW and 4m12/4m13 for SIZE for libsplashscreen. ------------- Commit messages: - JDK-8349378 Changes: https://git.openjdk.org/jdk/pull/23493/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23493&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8349378 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/23493.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23493/head:pull/23493 PR: https://git.openjdk.org/jdk/pull/23493