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

Reply via email to