OK, Twiddle wasn't accurate enough. I needed to pass a string (script location) and a graphics object (always Nil unless we're in the Paint event). Even with these, and the manipulation of the string in Twiddle the increase in time is inconsequential.
But now here's the big news. If I add more code to Twiddle it gets slower even though i'm just pasting the same two lines over and over again without using any new variables!Function Twiddle(farts as uint32, g as Graphics, location as string) As variant
 dim q As  Integer
 dim previousloc as string
 previousloc=scriptlocation
 scriptlocation=location
 q = WasteTime + farts
 WasteTime = q - 1
 WasteTime = q + 1
 [REPEAT THE ABOVE TWO LINES SOME NUMBER OF TIMES IN THE CODE]
 ScriptLocation=previousloc
 return nil
End Function
If I just copy and paste those two lines a few more times the method gets slower, but we're only calling it 1,000,000 times total and I'm using a Mac Pro!
So for some reason calling a method is slow but only when the method has more and more code??? Even if the code is doing piss all and should be no problem for a Mac Pro???
Nope this isn't directly correct either and now I'm confused as hell.
nevermind that, sleep deprivation, ran one test in RB Debugger instead of real compiled app
so I haven't figured out SHlT, pretty much