> >That’s only partially true. The array is adding 48k, which another patch > >series will reduce. Most of the additional memory usage is due to the > >font handling. So the inability of font handling in X.org/Fontconfig is > >the reason why too much has to be done over and over again. Yet another > >abstraction layer would hide it but waste the same resources. > > But unless I'm mistaken, the static arrays go in the .data or .bss > section (which also increased, but not by 16x.)
The bbs segment is not present in the executable. All the static data not initialized go to this segment, and the first thing that the executable does is a memset to 0 of the bbs segment. The executable only has the definition of the segment, begin address and size. This is the reason why is not the same these declarations: static int dummy; static int dummy = 0; The first goes to bbs and it is not present in the executable, and the second goes to data and it is present in the executable (of course some compilers can optimize it).