TimeDelays and Tight Loops
Keywords: TimeDelays and Tight Loops
Question:
I am running WinBatch Version 2000D on a Petium 3, 1.13 GHZ machine. I want to run a tight loop, but not too tight. However, it seems that whenever I add a time delay it greatly slows things down. I think that any time delay smaller than 0.1 seconds equals 0.05 seconds in Winbatch. Therefore, even a very small time delay of 0.0001 equals 0.05 instead. On my computer, by adding any time delay at all or any conditional If-Then statement it slowed down the loops per 5 seconds down from about 18,000 loops down to 60 loops. Of course at 18,000 loops it was using 100% of the cycles on the computer, but at 60 loops it was using less than 5%. I would like something in between these two extremes. Any ideas? Thanks!Here is my test code:
C = 0 LoopyStart = TimeYmdHms() :Loopy C = C+1 ResetTime = TimeYmdHms() RDiff = TimeDiffSecs(LoopyStart,ResetTime) If RDiff < -5 then goto GlobalX ;Rem out the timedelay line and it speeds ;up the loop about 300 times timedelay(0.0001) Goto Loopy :GlobalX message('Done',c) exitAnswer:
Ive heard that javascript can't actually schedule any tighter than 55 ms because of the way the system clock works. perhaps wbt has a similar problem?For a real short timedelay try
Yieldor maybe Yield(10)or something like they. A Yield is a *very* short timedelay.
Alternatively you may be interested in changing the process scheduling priority.
Article ID: W15306