RFR: 8349378: Build splashscreen lib with SIZE optimization
Phil Race
prr at openjdk.org
Sat Feb 8 04:13:14 UTC 2025
On Thu, 6 Feb 2025 13:52:49 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
> 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 (not split debuginfo file on AIX currently)
>
> 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 (not split debuginfo file on AIX currently)
>
> 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 pl...
I note that AIX seems to be the biggest beneficiary here. It doesn't seem to be a big deal for anything else.
I think what we are looking for in testing is no functional regression plus minimal perf impact on startup.
But I don't think any of our jtreg tests are set up to measure the perf so can only ensure the functional.
It would be good to check that as mentioned.
And I don't remember anyone ever testing perf of splash since the point of splash is to mask the much bigger hit of booting up the JVM .. so I doubt we'll be able to test it today.
But I'll make a note to self to ask the people who do perf testing to think about this, or perhaps tell me "gosh Phil, we've been testing that forever, didn't you know" ?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23493#issuecomment-2644488159
More information about the build-dev
mailing list