This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH] Use hashtab.[ch] hashtable for IA-64 loc_hash_table
- From: Jim Wilson <wilson at specifixinc dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: David Mosberger <davidm at hpl dot hp dot com>, Alan Modra <amodra at bigpond dot net dot au>, binutils at sources dot redhat dot com
- Date: 23 Oct 2003 23:37:20 -0700
- Subject: Re: [PATCH] Use hashtab.[ch] hashtable for IA-64 loc_hash_table
- References: <Pine.LNX.4.44.0309091743500.13736-100000@wotan.suse.de><16222.51765.814960.827769@napali.hpl.hp.com><20030910072010.GA1443@bubble.modra.org><16222.54088.44588.613549@napali.hpl.hp.com><20030910091244.GB1443@bubble.modra.org><16223.24453.458479.124065@napali.hpl.hp.com> <20030911175902.GC12344@sunsite.ms.mff.cuni.cz>
On Thu, 2003-09-11 at 10:59, Jakub Jelinek wrote:
> The following patch gets rid of that sprintf (and generally, using string
> keys when the keys are really pair of two (typically small) integers).
> It compiled, no make check regressions and built glibc.
> Unfortunately, I don't have access to sufficiently idle system to be able
> to do any useful benchmarking.
I finally got around to doing the testing I offered to do earlier. This
patch makes the linker about 10% faster for a linux kernel build with
debug info. So this does look like something that we want. Are you
planning on checking this in?
I tested a gcc libjava libgcj.so build with the original and patched linker.
This is a 48MB shared library. I did the test 3 times and took the median.
This is using the gcc-3.3.1 sources.
Original linker:
real 1m27.125s
user 1m24.136s
sys 0m2.322s
Patched linker:
real 1m26.270s
user 1m23.334s
sys 0m2.394s
The patched linker is about 1% faster, but there is about a 1% measurement
error.
I tested a linux kernel build. I configured using the defaults, and tweaked
the result to eliminate conflicts. I added -g to CFLAGS. I timed the 3 link
commands for .tmp_vmlinux1, .tmp_vmlinux2, and vmlinux. These files are all
about 55MB.
Original linker:
real 1m49.049s
user 1m46.573s
sys 0m1.874s
Patched linker:
real 1m38.051s
user 1m36.099s
sys 0m1.952s
The patched linker is about 10% faster here, well above the measurement error.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com