[patch] ld speedup 1/3 (suffix merge)

David Mosberger davidm@napali.hpl.hp.com
Wed Sep 10 06:52:00 GMT 2003


>>>>> 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



More information about the Binutils mailing list