In mozilla there are a lot of page faults caused by paging in C++ global initializers. About 1/3rd of firefox faults are globals. ie the first part of a prelinked firefox startup is a bunch of faults caused by _GLOBAL__I_nsFtpConnectionThread.cpp, _GLOBAL__I_nsCookieService.cpp, etc.
If these were grouped together large C++ apps would load much faster. Once the initializers are easily identifiable by the linker, the linker needs to lay these out in a continuous chunk in the ordered that they are called. -- Summary: Output initializers in .text.init section Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tglek at mozilla dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44236