[comp.sys.mac.hypercard] Why does HyperCard slow up & SuperCard 1.5 doesn't?

jlc@atux01.UUCP (Jim Collymore) (08/24/90)

I have a stack that allows you to create a number of cards, and when you click
on a button it looks at a given line on a given field, takes a numerical value
placed on that line, adds it to a container, then goes to the next card, etc.
until it has done all the cards necessary.  While it is going from card to card
I have it get a user defined function in the stack script that will count the
number of cards to be tallied and then figure out what percentage of the total
number of cards to be tallied the current card represents. It then places that
percentage value in the message box.  (Example:  on card 1 (of 10 to be counted
say) it displays in the message box:  "10%", on card 2 "20%" and so on.)  Now
in HyperCard (HC) 1.2.5 this process starts to visibly slow down after getting
about 33% of the way through a large group of cards (i.e., more than 24 cards).
I have converted the stack to a SuperCard project and this operation runs with
NO DEGRADATION in speed!

What's different about SuperCard 1.5 and HC 1.2.5 (running on an SE/30 with
system 6.0.4)  that would cause such a slow down?  (I'm getting more and more
tempted to switch over to SuperCard.)

Thanks for the info.

						Jim Collymore

jdevoto@Apple.COM (Jeanne A. E. DeVoto) (08/31/90)

In article <110@atux01.UUCP> jlc@atux01.UUCP (Jim Collymore) writes:
>I have a stack that allows you to create a number of cards, and when you click
>on a button it looks at a given line on a given field, takes a numerical value
>placed on that line, adds it to a container, then goes to the next card, etc.
>        [...]                      (Example:  on card 1 (of 10 to be counted
>say) it displays in the message box:  "10%", on card 2 "20%" and so on.)  Now
>in HyperCard (HC) 1.2.5 this process starts to visibly slow down after getting
>about 33% of the way through a large group of cards (i.e., more than 24 cards).
>I have converted the stack to a SuperCard project and this operation runs with
>NO DEGRADATION in speed!

This is just a guess, but are you setting the lockRecent property in your
handler? I haven't tested this, but it seems possible that HyperCard takes
longer to add a card to the recent cards cache when the cache is already
full. Thus, if you're running this handler shortly after starting up HyperCard
(when you have visited few cards), maybe the recent cards cache is being
filled a few cards into the handler, and thereafter, extra time is needed to
flush the first card and add the newly seen card.
-- 
========= jeanne a. e. devoto ========================================
 jdevoto@apple.com     |  You may not distribute this article under a
 jdevoto@well.sf.ca.us |  compilation copyright without my permission.
______________________________________________________________________
 Apple Computer and I are not authorized      |        CI$: 72411,165
 to speak for each other.                     |

jlc@atux01.UUCP (Jim Collymore) (09/06/90)

In article <44445@apple.Apple.COM>, jdevoto@Apple.COM (Jeanne A. E. DeVoto) writes:
> In article <110@atux01.UUCP> jlc@atux01.UUCP (Jim Collymore) writes:
> >I have a stack that allows you to create a number of cards, and when you click
> >on a button it looks at a given line on a given field, takes a numerical value
> >placed on that line, adds it to a container, then goes to the next card, etc.
> >        [...]                      (Example:  on card 1 (of 10 to be counted
> >say) it displays in the message box:  "10%", on card 2 "20%" and so on.)  Now
> >in HyperCard (HC) 1.2.5 this process starts to visibly slow down after getting
> >about 33% of the way through a large group of cards (i.e., more than 24 cards).
> >I have converted the stack to a SuperCard project and this operation runs with
> >NO DEGRADATION in speed!
> 
> This is just a guess, but are you setting the lockRecent property in your
> handler? I haven't tested this, but it seems possible that HyperCard takes
> longer to add a card to the recent cards cache when the cache is already
> full. Thus, if you're running this handler shortly after starting up HyperCard
> (when you have visited few cards), maybe the recent cards cache is being
> filled a few cards into the handler, and thereafter, extra time is needed to
> flush the first card and add the newly seen card.

Jeanne:

I tried to play with the lockRecent property, and I checked the "Recent" window
before trying my experiments.  The recent window does not acknowledge having
gone through ANY other cards than the ONE where I initiated the tabulation
script.  It also made no difference using the lockRecent property in either the
button script that calls my user-defined function (located in the stack
script).  Nor did it make a difference when I placed the lockRecent property
in the function.

It would seem that for this type of operation, HyperCard 1.2.5 is NOT capable
of running as fast as the the same stack converted to, and running, SuperCard
1.5.

Note:  These scripts were run on an SE/30 with System 6.0.4 under the Finder.


						Jim Collymore