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


Reply via email to