Re: Dynamic symbol table

Lubos Lunak <[email protected]>
Newsgroups gmane.comp.kde.devel.optimize
Message-ID <[email protected]>
On Friday 16 of July 2004 12:40, Waldo Bastian wrote:
> On Friday 16 July 2004 12:09, Karl Vogel wrote:
> > Oh that's right.. strace can also trace through fork.. forgot about that.
> > Lol.. would probably have been more sensible to use strace than to hack
> > my kernel to log open() calls.. but it also worked :-)
> >
> > What I was trying to figure out, is whether loading of binaries is having
> > a negative effect on start time.
> >
> > One should be able to speed up the start time of binaries by putting the
> > initial startup code together, which means it will most likely be
> > together on disk also, which ultimately reduces I/O's.
> >
> > By (ab)using GCC's -fprofile-arcs & -fbranch-probabilities, it is
> > possible to put the start code in a different ELF section than the rest
> > of the code.
> >
> > The idea:
> > * add option to kde exe to directly stop after KApplication() setup
> > * compile exe with -O2 -fprofile-arcs
> > * start kde exe with the new stop option
> > * the profiled exe will dump stats to 'exename.da'
> > * compile exe with -O2 -fbranch-probabilities
> >
> > => gcc will now have put the startup code in section 'text.hot' and the
> > rest in 'text.unlikely'. So the startup code will be all together in the
> > exe, meaning less head seeking, less I/O & faster load. (and afterwards a
> > smaller RSS is needed to run the app)
>
> Yes, I once did some function reordering based on first usage and that
> showed indeed some improvement, but I didn't manage to find a convenient
> way to do that on a larger scale.
>
> Would be nice if someone could look into that. Just having a somewhat
> convenient to use tool to identify the hot code would already be a step
> forward.

 Note that ld.so in SUSE9.1 loads whole binary at once into memory instead of 
paging it in as needed, which reduces seeking (can be disabled by 
$LD_NOMADVISE). This was discussed here few months back. I'm not sure if this 
feature has made it into official glibc yet.

-- 
Lubos Lunak
KDE developer
---------------------------------------------------------------------
SuSE CR, s.r.o.  e-mail: [email protected] , [email protected]
Drahobejlova 27  tel: +420 2 9654 2373
190 00 Praha 9   fax: +420 2 9654 2374
Czech Republic   http://www.suse.cz/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.