40% slowdown with dynamic /bin/sh

Kent Stewart kstewart at owt.com
Mon Nov 24 17:42:40 PST 2003


On Monday 24 November 2003 05:25 pm, M. Warner Losh wrote:
> In message: <20031125012208.GD46761 at dan.emsphone.com>
>
>             Dan Nelson <dnelson at allantgroup.com> writes:
> : In the last episode (Nov 25), Daniel O'Connor said:
> : > On Tuesday 25 November 2003 06:45, Andrew Gallatin wrote:
> : > > So.. forking a dynamic sh is roughly 40% more expensive than
> : > > forking a static copy of sh.  This is embarrassing.
> : > >
> : > > I propose that we at least make /bin/sh static.  (and not add a
> : > > /sbin/sh; if we must have a dynamic sh, import pdksh, or put a
> : > > dynamically linked sh in /usr/bin/sh).
> : > >
> : > > I'd greatly prefer that the the dynamic root default be backed out
> : > > until a substantial amount of this performance can be recovered.
> : >
> : > What _REAL WORLD_ task does this slow down?
> :
> : Try timing "cd /usr/ports/www/mozilla-devel ; make clean" with static
> : and dynamic /bin.  bsd.port.mk spawns many many many /bin/sh processes.
>
> Maybe you could try it with both and tell us the actual difference in
> wall time?

I don't see why this surprises anyone. A dynamic shell has to be the 
equivalent of swapping. In situations I have been in, you can only improve on 
static if you have a way to leave the pieces memory resident.

Kent

-- 
Kent Stewart
Richland, WA

http://users.owt.com/kstewart/index.html



More information about the freebsd-current mailing list