WaCo 0 Report post Posted August 11, 2005 "Speed of various incremetation methods" 1) Method one [tomek@localhost ebooks]$ LEGAL=1 LEGAL_2=1; LEGAL_3=1;for i in `seq 100000`; do LEGAL=$(( $LEGAL + 1 ));LEGAL_2=$(( $LEGAL_2 + 1 )); LEGAL_3=$(( $LEGAL_3 + 1 )); done; echo legal\'s value is "$LEGAL"Avarage amount of time that the process took: 9 seconds 29 hundredth. 2) Method two [tomek@localhost ebooks]$ LEGAL=1 LEGAL_2=1;LEGAL_3=1;for i in `seq 100000`; do LEGAL=$[LEGAL + 1];LEGAL_2=$[LEGAL_2 + 1];LEGAL_3=$[LEGAL_3 + 1]; done;echo legal\'s value is "$LEGAL"Avarage amount of time that the process took: 6 seconds 99 hundredth. 3) Method three [tomek@localhost ebooks]$ LEGAL=1 LEGAL_2=1; LEGAL_3=1;for i in `seq 100000`; do LEGAL=`echo $LEGAL + 1 | bc`;LEGAL_2=`echo $LEGAL_2 + 1 | bc`;LEGAL_3=`echo $LEGAL_3 + 1 | bc`; done;echo legal\'s value is "$LEGAL"Avarage amount of time that the process took: 5 000 seconds. 4) Metoda four [tomek@localhost ebooks]$ LEGAL=1 LEGAL_2=1; LEGAL_3=1;for i in `seq 100000`; do LEGAL=`expr $LEGAL + 1`;LEGAL_2=`expr $LEGAL_2 + 1`;LEGAL_3=`expr $LEGAL_3 + 1`; done;echo legal\'s value is "$LEGAL"Avarage amount of time that the process took: 2 000 seconds. 5) C++ example for comprehension #include <iostream>using namespace std;int main(){ float a; for ( a=1; a <= 10000000; a++ ) { /* 100 x more than in bash !!! */ } cout << a;return 0;}Avarage amount of time that the process took: not even a second. Conclusion: The best incrementation method is second method, but compared to hightech programming languages it's still very slow. Notes: tests were held on Duron 733 Mhz, 128 mb ram, riva tnt 2 32 mb. [Added 2005-08-11, 07:49:21] Share this post Link to post Share on other sites
vizskywalker 0 Report post Posted August 12, 2005 I understand what it is, it is a rundown on various methods of incrementing values and how long they take. It seems to be doing so in batch scripting, perhaps we should ove it there?~Viz Share this post Link to post Share on other sites
qwijibow 0 Report post Posted August 27, 2005 The comparason to c++ is not fair.You will probably find that the c++ compiler is optimising your code, and replacing for ( a=1; a <= 10000000; a++ ) { /* 100 x more than in bash !!! */ } with the following codea=10000000; both pieces of code achieve the same end result.try compiling the the zero optimise flag -O0 Share this post Link to post Share on other sites