mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 00:02:44 +00:00
c15e7faad5
particularly help programs which load many shared libraries with a lot of relocations. Large C++ programs such as are found in KDE are a prime example. While relocating a shared object, maintain a vector of symbols which have already been looked up, directly indexed by symbol number. Typically, symbols which are referenced by a relocation entry are referenced by many of them. This is the same optimization I made to the a.out dynamic linker in 1995 (rtld.c revision 1.30). Also, compare the first character of a sought-after symbol with its symbol table entry before calling strcmp(). On a PII/400 these changes reduce the start-up time of a typical KDE program from 833 msec (elapsed) to 370 msec. MFC after: 5 days |
||
---|---|---|
.. | ||
alpha | ||
amd64 | ||
i386 | ||
debug.c | ||
debug.h | ||
Makefile | ||
malloc.c | ||
map_object.c | ||
rtld.1 | ||
rtld.c | ||
rtld.h | ||
xmalloc.c |