James Findley wrote: > You're comparing the wrong thing here - I was demonstrating that it > doesn't take noticeably longer to spawn awk than a small C app on modern > systems. > thus using: > for i in {1..1000}; do awk 'BEGIN{print "Hello World"}' > /dev/null; done > for i in {1..1000}; do ./helloworld > /dev/null; done > we compare how long it takes to start a trivial C program 1000 times to > a trivial awk program 1000 times. > The bash for loop overhead is present in both cases, and since we are > only interested in the difference in speed, we can ignore it. (I > actually ran this comparison a number of times, and used the mean value) > > You're comparing how long it takes to launch an awk program 1000 times > to how long it takes to run 1000 iterations of a loop in C. This is not > an especially useful thing to do. Your comparison is the flawed one. The point of porting the shell code to C is to invoke ONE C program instead of many awk, grep etc. subprocesses. All the operations done by awk etc. would be done by native C code. So doing the loop in C is very much consistent with what we want to accomplish. IMHO replacing slow interpreted code by fast compiled code is always a good idea, especially so if the interpreted code is shell code with its massive abuse of process spawning. Kevin Kofler -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel