Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Apr 2003 07:09:22 -0700
From:      David Schultz <das@FreeBSD.ORG>
To:        Narvi <narvi@haldjas.folklore.ee>
Cc:        Alex Semenyaka <alexs@snark.ratmir.ru>
Subject:   Re: /bin/sh and 32-bit arithmetics [CORRECTED]
Message-ID:  <20030423140922.GB13246@HAL9000.homeunix.com>
In-Reply-To: <20030422023703.G29990-100000@haldjas.folklore.ee>
References:  <20030420011039.GC52081@snark.ratmir.ru> <20030422023703.G29990-100000@haldjas.folklore.ee>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 22, 2003, Narvi wrote:
> 
> 
> On Sun, 20 Apr 2003, Alex Semenyaka wrote:
> 
> >  7    5.20     6.37     3.51    22.50%     i=$(($i<<1))
> >  8    5.25     6.42     3.51    22.27%     i=$(($i<<$m))
> >
> > As you can see, even for arithmetic-only script the overhead is not too big
> > except with one case: shift operation. I decided to investigate is it usual
> > script operation. I've went through all scripts I could find in my FreeBSD
> > box. I've searched them with "locate .sh | grep '\.sh$'". There were a lot
> > of them:
> >
> > $ locate .sh | grep '\.sh$' | wc -l
> >     1637
> >
> > But there was no any script that uses the shift operation. Good, but not
> > enough. I've take the script that uses arithmetics and do some other job,
> > ttfadmin.sh from the Abiword package. I've run in 10000 times in the loop
> > with both (64-bit and 32-bit) shells. As an argument it received empty
> > directory so no work has been done, just run, check pars, found no files,
> > exit. It takes 65.35 seconds in the first case and 65.30 second in the second
> > one. So the the time that arithmetics takes during the real script execution
> > is too small in comparison to total running time (obviously: arithmetics
> > is in-core calculations while any script usually run some external programs
> > etc, and at least I/O is involved).
> 
> Ahem - wouldn't it be easier to find out *why* the dramatic speed-down
> happens and trying to combat it as opposed to trying to show the
> speed-down is not releavant? There shouldn't be anything inherently that
> much slower in 64 bit shifts...

We're talking about interpreted Bourne shell here.  It's slow by
design, and 64-bit arithmetic is not going to make it
significantly slower for anything other than microbenchmarks.

BTW, I'll review the patches next month when I have some free time
if nobody else jumps on it.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030423140922.GB13246>