On Wed, May 11, 2011 at 02:31:37PM -0400, Ryan Johnson wrote: >Hi all, > >This patch has the parent sort its dll list topologically by >dependencies. Previously, attempts to load a DLL_LOAD dll risked pulling >in dependencies automatically, and the latter would then not benefit >from the code which "encourages" them to land in the right places. The >dependency tracking is achieved using a simple class which allows to >introspect a mapped dll image and pull out the dependencies it lists. >The code currently rebuilds the dependency list at every fork rather >than attempt to update it properly as modules are loaded and unloaded. >Note that the topsort optimization affects only cygwin dlls, so any >windows dlls which are pulled in dynamically (directly or indirectly) >will still impose the usual risk of address space clobbers.
This seems CPU and memory intensive during a time for which we already know is very slow. Is the benefit really worth it? How much more robust does it make forking? cgf