Subject: Re: ksh bugs and behaviour questions
To: Matthias Buelow <mkb@mukappabeta.de>
From: Roland Dowdeswell <elric@imrryr.org>
List: tech-userlevel
Date: 01/25/2003 19:10:53
On 1043533227 seconds since the Beginning of the UNIX epoch
Matthias Buelow wrote:
>

>It is very hard for me to believe what I'm seeing here, I can only 
>describe it as "bizarre"; that people are actually wasting time on 
>discussing how to micro-optimize the shell interpreter.

I do not think that you can characterise a 10% reduction in the
typical command execution path as a micro-optimisation.  Given that
so many tasks on UNIX involve /bin/sh, it seems like an important
program to optimise.

>                                                         As if it were 
>of any value if one shell executes ten thousand commands a second faster 
>than the other; it is even of no benchmark value, since you would have 
>to measure typical script workloads and not a simple loop,

So, for this ``it depends''.  On the one hand, the small loop that
I posted does not give a good indication of shell performance under
a typical workload, but on the other hand it does make a decent
stab at how much overhead the shell is causing.  If I were to
benchmark a ``typical workload'' then I would have very little idea
where the overhead came from and would not have a good idea what
was performing slowly.  I would not sell this benchmark as a measure
of system performance, but rather as a first stab at profiling how
the shell itself is performing.

>                                                           and besides, 
>if you want something fast, sh surely isn't the proper language to do 
>it!  *incredulously shaking head*

Well, in that case should I volunteer or will you to change all
number of existing utlities which call the moral equivalent of
system(3) to not invoke the shell?  The fact of the matter is that
/bin/sh is one of the most frequently executed binaries on a typical
NetBSD system.  For example, how many times do you think that
/bin/sh is invoked during a typical build?  How about when running
autoconf?  Etc, etc.

--
    Roland Dowdeswell                      http://www.Imrryr.ORG/~elric/