On Tue, 4 Feb 2025 08:51:43 GMT, Matthias Baesken <mbaes...@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 No libraries are optimized for size by default. Optimization for size is only used by hotspot, and only when `opt-size` feature is enabled; I think `opt-size` may be enabled in the `minimal` variant. Optimization level `O1` is already used in many places, specifically in every place that uses `HIGH` or `LOW` optimization. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23432#issuecomment-2633821183