Subject: SymCache performance
To: None <tech-toolchain@netbsd.org>
From: Charles Hannum <abuse@spamalicious.com>
List: tech-toolchain
Date: 09/06/2002 13:13:39
So I test the SymCache code a little, and made two observations:

* Although it does reduce many lookups that my `combreloc' code does
  not currently, it did not actually make a measurable change in
  mozilla's startup time.  Perhaps it will win more with some other
  applications.

* It actually makes David Laight's stupid-program test run slower for
  me.  With it disabled, I get:

mururoa# time /var/tmp/qd 999
        1.15 real         0.42 user         0.71 sys

  and with it enabled, I get:

mururoa# time /var/tmp/qd 999
        1.34 real         0.44 user         0.88 sys

  Simple arithmetic suggests that each process is taking a 190us hit
  for the additional mmap()/munmap() calls.

  Probably the SymCache can be elided in some cases -- certainly it
  makes no sense to use it for ld.elf_so itself, because there are no
  external references.  However, I'm not sure offhand what the right
  heuristic is (checking DT_SYMBOLIC doesn't seem likely, because
  other things using DT_SYMBOLIC *do* have external references).