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