[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: question regarding prelinking



>>>>> On Mon, 20 Jan 2003 09:27:57 +0300, "Nikita V. Youshchenko" <yoush@cs.msu.su> said:

 >> So Jack, can you give an example of a program where a significant
 >> amount of time is spent having the dynamic linker work out the
 >> correct linkage?  ie a package that would benefit significantly
 >> from prelinking.
 >>
 >> I'm having a hard time seeing how this will make such a
 >> difference.

 Nikita> The linking inself (that is, looking up 20000 entries in
 Nikita> symbol tables) is noot that long on modern hardware. It may
 Nikita> be done in a second or so.

 Nikita> Seems that thing that really makes startups SLOW is swapping.
 Nikita> During relocation, a shared library page should be changed
 Nikita> (by writing new addresses), so this page is unshared (a
 Nikita> personal copy of this page for the current process is
 Nikita> created), and if there is currently no free physical page, it
 Nikita> causes swapping.  And swapping IS slow even on modern
 Nikita> hardware.

Actually, unless I'm misunderstanding something, shared lib pages are
not rewritten (excluding data pages of course).  That's what PIC code
is about.  A register keeps a pointer to the front of the shared
segment and all refs to a symbol within are based on an offset from
that register.  So it's not swapping.  If anything it's runtime
slowness not startup.

Jim

-- 
@James LewisMoss <dres@debian.org>      |  Blessed Be!
@    http://people.debian.org/~dres     |  Linux is kewl!
@"Argue for your limitations and sure enough, they're yours." Bach



Reply to: