Subject: Musings on ld.elf_so and symbol lookup caching
To: None <tech-userlevel@netbsd.org>
From: Charles M. Hannum <abuse@spamalicious.com>
List: tech-userlevel
Date: 10/04/2002 13:53:13
One observation I've made is that, now that the DAG complexity is
drastically reduced in many cases, the effect of things like
`SymCache' is also drastically reduced -- to the point where the extra
overhead is starting to dwarf the benefit even in some previously good
cases.
Another observation I've made is that, when a process is started, or a
module is loaded, all of the objects loaded at the same time use
exactly the same search order to look up symbols.
So, I was thinking that, rather than doing the `SymCache' per object,
we could instead create one global cache to be used during the entire
startup or module loading. For simplicity, make it a simple,
direct-mapped, non-chaining hash table, and fill it in lazily. This
should give a significant improvement over the `SymCache' code.
I'll probably get to this on Monday unless someone else does it.