Standalone Building

Wilhelm Sanke sanke at hrz.uni-kassel.de
Wed Oct 7 05:33:47 CDT 2009


Thanks for the clarification about a new process for standalone building 
in Rev version 4.

 From Richard's quote of the v4 engine change log:

> In order to achieve this, it has been necessary to implement the core 
> operation of standalone building in the (ide) engine. This means that 
> the standalone engine provided in the distribution is no longer 
> generally useful as anything other than the shell which is used to 
> form the standalone. In particular, it cannot be used to build 
> standalones using the method previously used nor can it be used as a 
> generic command line engine.


The critical point here is what "core operation" will mean. Does it 
comprise such - or any of the - procedures that are presently carried 
out (in Rev standalone building) by substack "revSaveAsStandalone" of 
stack "RevStandaloneSettings"?

To my experience, the most problematic part of standalone building in 
the Rev IDE has been the tedious process of "Removing development 
properties", which is still a severe problem in 4.0-dp4 of the Rev IDE - 
without any apparent change compared with the performance of previous 
versions, especially when it comes to stacks with a larger number of 
controls (an issue Richard Gaskin raised in a somewhat different context 
in the recent thread "Practical limits on object counts" on the 
use-revolution list).

I tested this with Rev versions 3.5 and 4.0-dp4 and comparing this with 
the performance within the Metacard IDE with Rev engine version 3.5 (as 
Rev version 4 of the Standalone file does not cooperate with our 
Standalone Builder). See also my contributions to thread "Practical 
limits on object counts" on the use-revolution list.

When you create a card containing 10,000 fields or buttons the resulting 
stack will have the twofold size in the Rev IDE compared to that created 
in the Metacard IDE, because the Rev IDE adds "development properties" 
to each control. In the case of fields that do not contain any scripts 
this is only one "development property", namely a custom property 
"revuniqueID". In the case of buttons that contain scripts there can be 
up to around 7 such development properties as costum properties.

The problem of very slow standalone building in the Rev IDE with larger 
stacks has been around since at least for 5 years. You may try out my 
two test stacks from 2004/5 contained in

<http://www.sanke.org/Software/RevTestStacks.zip> ,

one stack having 1600 fields on the card, the other 3300 fields. The 
original intent of these stacks was to demonstrate the influence of the 
"table field" bug (bug reports 2019 and 2217).

At that time there appeared a short "time window" of an unprotected Rev 
standalone building stack, which enabled me to experiment with its 
scripts and to speed up the standalone building process considerably and 
reach a tolerable level of performance. Later Monte Goulding stepped in 
and more or less made changes along my lines, but then the time window 
of un-encryption was closed again - and also Monte Goulding's changes 
were lost or being disregarded.

I therefore lost interest in this problem and continued - and resorted 
again - to working with the Metacard IDE. I am sure that this long 
standalone-building problem of the Rev IDE would have been resolved 
comparatively quickly, if the Rev team had allowed access to the scripts 
of "RevSaveAsStandalone" in the same way you can inspect and alter any 
other element of the Rev IDE.

Standalone building with our Metacard "Standalone Builder" usually takes 
less than one second for any size of stacks and number of controls, as 
only the engine - or more recently file "standalone" - is being attached 
to the stack. This works with all MC IDE versions including up to 
version 3.5 of the Rev engine/standalone file. Necessary resources 
needed in the stack are moved (very quickly) into the stack before 
standalone building by our "Resource Mover". Nothing needs to be 
"removed" - as in the Rev IDE - because there are no "development 
properties".

The crucial factor is the process of removing these development 
properties when building a standalone in Rev.

Benchmarks for my three test stacks (two in 
<http://www.sanke.org/Software/RevTestStacks.zip>, the recent one with 
10000 fields can be made accessible - if anybody should be interested); 
Standalone-Building times on a 3 GHz WindowsXP machine:

- 1600-fields stack

MC IDE: 1 second
Rev IDE: 2 to 3 minutes

- 3300-fields stack

MC IDE: 1 second
Rev IDE: 40 minutes

- 10000 (ten thousand) fields stack

MC IDE 1 second
Rev IDE: Test canceled after about one hour. Building time apparently 
rises exponentially with larger numbers, so my estimate would be about 5 
to 6 hours

The Rev development properties (or more precisely "monitoring them" by 
front or backscripts) seem to play a role in other IDE processes, too.
Example:

Deleting the ten thousand fields using the MC IDE takes 6 seconds, 
deleting them in the Rev IDE takes 7 minutes, meaning this process is 70 
times slower in the Rev IDE. Interestingly, these results are 
independent of the fact whether the ten-thousands field had been created 
in MC or Rev.
It seems that the Rev IDE looks for "development properties" even in the 
case that none are existent.--

I sincerely hope that the Rev developers will resolve such problems in 
the near future, and I also hope very much that standalone building with 
the Metacard IDE will not be effected by the new procedures announced 
for Rev version 4.

Best regards,

Wilhelm Sanke



More information about the metacard mailing list