On 13 Mar 2026, at 14:53, Olivier Certner <[email protected]> wrote: > > You are likely hitting a known problem, see thread "performance regressions > in 15.0". E.g., just picked one mail saying what I also personally think > about it: > https://lists.freebsd.org/archives/freebsd-current/2025-December/009623.html > (arguably, some RAM factories have burnt out for retail consumers since > then...) > > AFAIK, the default was never switched back, but if you're building from > source, a new knob was added to recover the previous behavior, see: > https://cgit.freebsd.org/src/commit/?id=8d5a11cd0137d3ad
It looks like the performance hit is particularly noticeable when you fork a lot of cc processes with short lifetimes, i.e. when running configure scripts that check features with small .c files. Apparently loading a relatively large static executable is much faster than loading a small dynamic executable linked to a large dynamic library. Maybe this is exacerbated by PIE, and/or having to look through a large set of symbols. I think it would be interesting if someone could figure out where the bottleneck lies in the dynamic linker, and if any improvements are possible. -Dimitry
