This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [patch] ld speedup 1/3 (suffix merge)
- From: David Mosberger <davidm at napali dot hpl dot hp dot com>
- To: Michael Matz <matz at suse dot de>
- Cc: Alan Modra <amodra at bigpond dot net dot au>,<binutils at sources dot redhat dot com>,Lars Knoll <lars dot trolltech dot com at napali dot hpl dot hp dot com>
- Date: Tue, 9 Sep 2003 23:52:37 -0700
- Subject: Re: [patch] ld speedup 1/3 (suffix merge)
- References: <20030909150800 dot GU1443 at bubble dot modra dot org><Pine.LNX.4.44.0309091743500.13736-100000@wotan.suse.de>
- Reply-to: davidm at hpl dot hp dot com
>>>>> On Tue, 9 Sep 2003 18:06:06 +0200 (CEST), Michael Matz <matz at suse dot de> said:
Michael> One of those changes was using a non-quadratic string
Michael> suffix merge, patch is below. The result looks like so
Michael> (binutils compiled without optimizations, time for linking
Michael> libqt.so, assistant and designer, ld.cvs is the ld as it
Michael> falls out of CVS HEAD, ld.strmerge is CVS with the below
Michael> patch):
By coincidence, I ended up profiling ld on ia64 kernel builds tonight
and (fortunately), I saw your post before spending time to try to
improve performance myself. The results below are for a largish
kernel, with debugging & kallsyms enabled (i.e., kernel gets actually
linked 3 times):
original (CVS) ld: with your patch applied:
real 1m18.043s real 0m30.134s
user 1m15.440s user 0m25.248s
sys 0m1.643s sys 0m1.756s
Me likee. ;-)
The resulting profile is still very lopsided (30% of time is spent in
sec_merge_hash_lookup), so there may be more opportunities to speed
things up, but your patch alone helps a great deal.
Thanks,
--david