This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: parallelized 'ld'?


> If my boss told me to speed up ld with a minimal effort I'd:

>- check if LD memory usages isn't very close to the maximal amount of memory on the
> 	target systems.
> - check if LD allocates a lot of small parts of mem (e.g. per symbol).

Since we're talking about large executables, my first instinct would
be to time the hash table lookups.  If ld is using fixed-sized hash
tables with external chaining (as someone said, I think), then the
problem of performing a sequence of M defines and lookups with N
distinct symbols becomes a Theta(N*M) problem rather than Theta(M) and
this can show up with large sizes.  If you have an external symbol
table size of (say) 4000, and you have 1,000,000 global symbols, then each
search does up to 250 comparisons, rather than a more reasonable
number (like, say, <4).

Paul Hilfinger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]