At work we had a kind of special problem with our build system that runs in Cygwin and Linux. On Linux the dependency generation is probably 20 times as fast as on windows+cygwin.
It turned out to be completely related to how fast a proces can be created in cygwin vs. Linux.
We tried a simple experiment:
while true; do date; done | uniq -c
This will execute 'date' as fast as possible and uniq will print a line everytime date prints something different, i.e. once a second.
On my WinXP Core i7 @ 2.66GHz uniq says that date was executed about 64 times/second. That's pretty slow, but we knew that already. On another much slower Linux machine the same number was 1400! Hugely much faster but still what you might expect. Surprizingly a Win7 machine with Core i7 could only manage 14 executions of date per second in cygwin. Strange, but it could be related to antivirus and stuff maybe.
Anyway, I decided to test this on OS4 (G4 @ 866MHz) and I expected high values due to the light-weight processes of Amiga OS. Unfortunately the while loop could not be used with uniq because uniq would not print anything while the loop was running and the loop could not be ended with Ctrl+C in abc-shell. So I had to let date print live instead which probably affected the result a bit due to our ultra slow console printing on Amiga OS.
This is the result of "while true; do date; done": 62 printouts/second. Executing with explicit path I could get 70.
I also tried this in an AmigaDOS script:
lab upp
version
skip upp back
Result: 180 executions/second.
Of course this machine is slower than the Linux machine and much slower than the Core i7, but I still expected higher values.
Comments?