Wilhelm Sanke wrote:
I tested these two scripts in versions 2.6.6 and 2.7.4 of Metacard and the corresponding engine versions of Rev 2.6.1 and 2.7.4, both as stacks and as standalones. The stacks were always launched from the same folder. I again used a larger image of 1600 X 1200 which was reset each time immediately after each run of a script.

Results (average numbers are given for several measurements in all categories):

- MC 2.6.6: Measured inside is 300 milliseconds faster, both in the stack and the standalone (9350 vs. 9050)

- Rev 2.6.1 (engine identical to MC 2.6.6)
 Stack: measured inside is 3400 milliseconds faster (13200 vs. 9800)
 Standalone: measured inside is 3500 milliseconds faster (12250 vs. 9050)

There is another difference here between standalone and stack in REV 2.6.1 indicating an additional interference from the IDE of about 1 second.

- MC 2.7.4
 Stack: Measured inside is 300 milliseconds faster (9400 vs. 9100)
Standalone: Measured inside is also 300 milliseconds faster (9480 vs. 9180), but the standalone is slightly slower than the stack ??

- Rev 2.7.4
 Stack: Measured inside is 3130 milliseconds faster (12860 vs. 9730)
Standalone: Measured inside is is 3200 milliseconds faster (12400 vs. 9200), and the standalone is somewhat faster than the stack.

As you can see when you compare the above data of MC 2.7.4 and Rev 2.7.4 there is an additional speed difference between the IDEs even when "measured inside": Rev is here an extra 630 milliseconds slower, meaning that this difference cannot be accounted for by imagedata handling, but must be caused by other interfering scripts in the Rev IDE.

Overall conclusion: Rev is generally 3 seconds slower (33 %) when the imagedata handling is included in the measurement. There is also an additional interference from the Rev IDE.

Damn but that's thorough. Great work. Please make sure you include those in the BZ report.

On further consideration, I share your hunch that it isn't related to memory. I ran the same test with Activity Monitor set to display memory usage, and it nowhere near spiked. Given the low frequency with which AM updates that may not be precise, but I have enough memory free that I doubt that's the issue.

To verify that the Rev scripts are the cause, one way would be to include an initialization which purges all frontscripts and backscripts. If it ain't in the message path it can't be triggered.

But still that leaves us with the core question of how any script could be triggered from within the tight loop of your relatively small handler.

In my understanding, revCommon is a backscript only, and the only system message it traps is mouseDoubleUp (not sure why this isn't in the frontScript, but that's for another exploration). Everything else in revCommon is inert in any standalone that doesn't explicitly call those handlers.

Given what we know thus far, I'm wondering now if perhaps you've discovered some undocumented "feature" in the engine which forks execution depending on whether or not revCommon is present. Verifying that would mean going back to v2.5 to test, and it's such a hair-brained idea that it's not likely what's really happening anyway. I mention it only because frankly I'm out of other ideas on what could be going on.

For the moment it may be most productive to just post your test and results to BZ and let the folks at RunRev sort it out. As MC users we're unaffected by this performance loss, and no one would benefit more from pinning this down than the folks who have access to the source and are therefore better equipped to delve into the inner workings of what's going on.

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.com
_______________________________________________
metacard mailing list
metacard@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/metacard

Reply via email to