Speed differences between MC and Rev (problem area nearly found)

Wilhelm Sanke sanke at hrz.uni-kassel.de
Thu Oct 12 14:42:35 CDT 2006


Richard Gaskin wrote:

> Confirmed in the IDEs -- 5740ms/avg in MC, 6830ms/avg in Rev (I have a
> 1GHz PB G4).
>
> I haven't built standalones, though, which would be good to test. 


In the meantime I did further tests and built standalones for MC 2.6.5, 
2.73, 2.74 and Rev 2.6.1, 2.73, 2.74. I tested 3 more scripts and also 
tested all scripts with a much larger image of 1600 X 1200.
As before, no significant differences between stacks and standalones in 
MC and - also as before - a slight improvement for the Rev standalones 
compared to the Rev stacks, but a remaining difference to the MC 
equivalents of up to four seconds, and even one script where Rev runs 
*eleven* times slower than MC! See below.

>  Given this speed loss I'm confident the folks at RunRev will take a keen
> interest to determine what's eating performance.
>
> Offhand I can't imagine how the execution of a single handler with no
> breaks, pauses, or sends is in any way affected by any outside script,
> but it does indeed appear to be the case.
>
> Have you BZ'd this?  It would be good to include that file as an
> attachment to the report.


I might do this after some more research

> -- Richard Gaskin Fourth World Media Corporation


and Chipp Walters (on Wed, 11 Oct 2006) wrote:

> Wilhelm,
>
> Just wondering, did you 'lock messages' before and 'unlock messages'
> after when running the script? If not, you might want to try it and
> see if it doesn't speed things up.


Inserting "lock messages" etc. does not change the results.
But thanks for the hint, because the fact that adding "lock messages" 
does not change the speed means that the long

"setProp cREVGeneral [pwhichProp] pWhichProfile" handler

(which belongs to the scripts added by the Rev Standalone Builder) 
cannot be the culprit.
Unfortunately, all these extra scripts apparently are added by the 
script-protected revsaveasstandalone substack. I searched the scripts of 
the "StandaloneSettings" stacks and so far found nothing there that 
could be related to the speed difference problems.

> Also, you probably want to make sure 'Variable Checking by Default" is
> turned OFF in the prefs pane for RR.

Same as above, does not make any difference.

> best, Chipp



Here are some results for filters applied to the larger 1600 X 1200 
image (again: Windows computer with 2 GHz):

- "duplicate colors": Rev is * three seconds* slower in all the 3 stacks 
and standalones ( 9 vs. 12 and 10 vs. 13 seconds with different engine 
versions)

- "max dots" (this is a modified version of the Gimp "despeckle"-median 
filter, where I exchanged the median for the max values. The button is 
to be found in my Imagedata Toolkit below the "despeckle" filter).
Rev is about 4 seconds slower here, the results being 34 seconds for MC 
and 38.5 for Rev on the average.

I then happened to notice that the reset button worked considerably 
slower in Rev, eleven times slower, and I measured this.

The script of  the reset button is a one-liner

"set the imagedata of img 1 to decompress(the Bilddaten of me)" -- 
("Bilddaten" being a translation of imagedata).

This takes 270 milliseconds in MC and 3000 milliseconds in Rev with all 
engine versions and identical in stacks and standalones.

I removed "compress" for setting the custom property and "decompress" 
then in the reset handler, which didn't make much of a difference: Rev 
is now only 10 times slower.--

Anyway, after the "compress-decompress-reset" tests, I made some 
progress in detecting what is involved in producing the speed-difference 
problems. Instead of the image I placed a field with a longer text on 
the card, which then was saved as a custom property of the reset button. 
Resetting the text of the field is indeed identical in all Rev and MC 
stacks and standalones, meaning

that the speed differences between MC and Rev are caused by a different 
handling of "imagedata"!

It now remains to be found out which script is responsible for this 
abject treatment of imagedata in Revolution, where this script is 
located, and how we can prevent its interference.

Best regards,

Wilhelm Sanke
<http://www.sanke.org/MetaMedia>





More information about the metacard mailing list