RFR: 8349214: Improve size optimization flags for MSVC builds

Julian Waters jwaters at openjdk.org
Tue Feb 4 13:33:13 UTC 2025


On Tue, 4 Feb 2025 08:51:43 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> Looks like the binary size optimization flags are not ideal when compiling with MSVC.
> On other compilers (gcc/clang) the current size optimization flags lead in most cases to smaller libraries. On MSVC this seems to be not the case, the libs often get larger when optimizing for SIZE.
> 
> For example jvm.dll (build with VS2022) with current -Os size optimization
> 20M images/jdk/bin/server/jvm.dll
> 
> with -O1 set for size optimization
> 13M images/jdk/bin/server/jvm.dll
> 
> See the doc from MSVC about "optimize for size"
> https://learn.microsoft.com/en-us/cpp/build/reference/o1-o2-minimize-size-maximize-speed?view=msvc-170
> "The /O1 option sets the individual optimization options that create the smallest code in the majority of cases."
> The Os option is only a part of the size minimization flag set :
> /O1 (Minimize Size) equivalent to /Og /Os /Oy /Ob2 /GF /Gy

splashscreen already uses LOW for its optimization flags though. Is the intent to change it to SIZE for all compilers?

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

PR Comment: https://git.openjdk.org/jdk/pull/23432#issuecomment-2633942714


More information about the build-dev mailing list