tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] ld.elf_so - Cache objects checked



On Wed, Feb 24, 2010 at 01:07:03PM +0000, Roy Marples wrote:
> Hi List
> 
> I've been researching why Evolution from GNOME takes over 5 minutes to 
> load on my quad core amd64 beast. It boils down to dlsym looking for a 
> symbol that does not exist directly and as such examining every needed 
> library. However, the current implementation does not remember what 
> libraries it as already checked. Normally this isn't a problem, but with 
> the way Evolution is built the search chain is massive.

Somewhere I have some code that, at program startup, generates a single
ELF symbol table from all the libraries that are loaded at program startup.
I did this to speed up mozilla startup.

Changing ld(1) to use larger symbol name hash table would help!
(as you would get symbol hash misses, instead of finding hash chains
with an average of 1.5 entries.)
As would aligning the strings on 4 (or 8) byte boundaries.
Also a C loop for the name compare works faster than strcmp().

        David

-- 
David Laight: david%l8s.co.uk@localhost


Home | Main Index | Thread Index | Old Index