Peter Haworth wrote:

I have to admit you guys left me behind a while ago.  But I'm glad I
may have created a platform for some knowledge that wasn't there
before, plus I've got a fix for my problem so yes, definitely a good
day!

Thanks again for not only bringing this up, but for diligently working it through to find the root cause. Good work.


After thinking about it some more, I think I understand why the speed difference happens:

The various tests I ran showed that there is some overhead in resolving file paths to stack files vs. simply using the short name of the stack.

While this difference is trivial when accessing just the stack itself, it becomes amplified when walking through each of the controls in the stack.

Comparing Monte's results using 500 controls with a simpler stack with only 10 controls, the difference in the timing seems somewhat linear in relation to the number of controls being traversed.

So in short, it seems that it's not so much a problem with using paths to access controls, but the number of times that's done. The more times you ask the engine to resolve a path, the more that will affect speed.

I guess that's kinda obvious, but at first I had thought the issue was that control references were somehow taking longer than stack references, which would be even more mystifying.

This has been a very useful exploration. While it's not often that I write routines that walk through all controls in a stack, when I do I now understand that opening the stack invisibly first will greatly improve performance.

Monte, thanks again for your test.  Most illuminating.

--
 Richard Gaskin
 Fourth World
 LiveCode training and consulting: http://www.fourthworld.com
 Webzine for LiveCode developers: http://www.LiveCodeJournal.com
LiveCode Journal blog: http://LiveCodejournal.com/[email protected] http://www.FourthWorld.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to