Jacque-
Wednesday, May 18, 2005, 8:03:53 PM, you wrote:
JLG> This came up on the MetaCard list back in the dark ages. Scott Raney JLG> said the engine figures out the variable so we don't have to, and the JLG> two should be identical in speed.
Maybe I'm still in the dark ages... I wrote up a new speed test here and the loop that uses a variable seems to be running some 25 times faster than the one that evaluates the limit each time.
on mouseUp
local elapsedTime, x, y, z
put the milliseconds into elapsedTime
put the number of controls on card id 200593 of stack "revIcons" into y
repeat 1000 times
repeat with x=1 to y
add 1 to z
end repeat
end repeat
put the milliseconds - elapsedTime into field "fldResult1"
end mouseUp
on mouseUp
local elapsedTime, x, z
put the milliseconds into elapsedTime
repeat 1000 times
repeat with x=1 to the number of controls on card id 200593 of stack "revIcons"
add 1 to z
end repeat
end repeat
put the milliseconds - elapsedTime into field "fldResult2"
end mouseUp
Maybe the optimization only happens in a standalone?
I doubt it. Same engine, same interpreter/compiler.
I think it depends on the nature of the max value being used. If it's something that can change, like the number of controls, it needs to be evaluated each time.
Or so I think, but at least it would be consistent with what you're seeing, and in some ways consistent with what we would expect: how useful would it be to have a repeat loop which could affect the number of controls not counting the number of controls which govern it?
-- Richard Gaskin Fourth World Media Corporation __________________________________________________ Rev tools and more: http://www.fourthworld.com/rev
_______________________________________________ use-revolution mailing list [email protected] http://lists.runrev.com/mailman/listinfo/use-revolution
