Not being an official developer I am loath to jump in on this list, but I
can speak from my Win32 experience on this matter:
With a lot of plugins you are not going to be able to rely on demand paging
of even code pages, unless you can guarantee that all the plugins have been
compiled & linked to load at non overlapping addresses.
The Win32 DLL loader when it loads a plugin will check to see if it can be
loaded at its base address - if it can fine - the code pages will be loaded
later as they are touched. If not, the loader has to go though and
dynamically rebase the code pages, having the dobule effect of forcing the
code pages to page against virtual memory, and forcing every code page to be
loaded.
Ways to avoid this on Win32 would be to only load "new" plugins, save their
info, and avoid laoding them on further runs, or load them as resource only
modules using the no-rebase flag, and extract a resource describing the
capabilities of the plugin.
Lastly, the final option that I can see would be to include a rebasing tool
as part of the distribution that checked, and ensured that all plugins were
kept at non-overlapping addresses - in which case demand loading could be
relied upon.
I hope I have been of assistance.
Chris
--
My Windows Development pages : <http://users.lia.net/chris/win32>
Im on ICQ: 23144218