glex@uh.msc.umn.edu (Jeffrey Gleixner) (03/29/90)
A couple of weeks ago someone asked how to increment a variable in Bsh and
in response to that it was mentioned that writting a C program to do it
would be much quicker. I wondered how much faster it would actually be
and here's what I experienced.
%> cat t1
#!/bin/sh
count=0
while [ "$count" -lt "250" ]; do
count=`expr $count + 1`
done
echo "count = $count"
%cat t2
#!/bin/sh
count=0
while [ "$count" -lt "250" ]; do
count=`a1 "$count"`
done
echo "count = $count"
%>cat a1.c
#include <stdio.h>
main(argc,argv)
int argc; char *argv[]; {printf("%d",atoi(argv[1])+1);}
%> time t1
count = 250
7.5u 19.5s 0:31 85% 0+88k 1+3io 0pf+0w
%> time t2
count = 250
7.3u 17.9s 0:29 85% 0+88k 1+3io 0pf+0w
I don't really see that much of an increase. This was on a Sun 4/280. If
it can be done more efficiently please E-Mail me 'cause I'm curious. I also
tried using BC instead of the C program and that was horrible. Any examples?
Thanks.
glex@msc.umn.edu === " I don't date any girl that says bitch'n " ===guy@auspex.auspex.com (Guy Harris) (03/30/90)
>A couple of weeks ago someone asked how to increment a variable in Bsh and >in response to that it was mentioned that writting a C program to do it >would be much quicker. I presume they meant that doing the whole loop in C would be faster; it's not particularly surprising that your program isn't faster, since a lot of the time in both examples is spent firing up "exec" or your program, and only a small amount of time is spent in the "expr" example parsing the expression, etc..