Linker performance : ppc64_elf_check_directive & add_symbol_adjust

Andy Younger andy.younger@gmail.com
Fri Nov 10 07:32:00 GMT 2006


> This was from a project involving thousands of input files.
> check_directives is called once per input file, and was iterating
> over all the symbols.  It really only needs to process newly added
> dot symbols, so was doing an enormous amout of unnecessary work.

Hi Alan,

Thanks so much for looking at this..

After applying this patch on a vanilla copy of our binutils package I
get a 35% speedup, Pretty damn good! The top 4 functions are now.

 47.79     11.35    11.35  4292228     0.00     0.00  sec_merge_hash_lookup
 12.29     14.27     2.92   494122     0.00     0.00  walk_wild_section
 11.33     16.96     2.69  1746701     0.00     0.00  bfd_hash_lookup
  3.41     17.77     0.81 26999695     0.00     0.00  fnmatch

Previously I had some patches applied to do with increasing the hash
table size, which probably account for the difference in times in the
sec_merge_hash_lookup call.

Thanks again,

Andy



More information about the Binutils mailing list