Big Flat Stacks

Ben Rubinstein benr_mc at cogapp.com
Tue Jun 15 14:25:41 EDT 2010


I'm converting an old HyperCard stack for a client - it's a classic HC as
a single table DB job, with a bit of interesting functionality.  But it's big
- slightly over 38,000 cards, all with one background; about 30 MB on disk.

It's _very_ slow to do various things - but possibly that's only in the IDE 
(clients would use the stack with StackRunner or similar).  But doing anything 
with it in the IDE is a pain.

The way the stack is used historically is doing simple searches, and flipping 
through matching cards, making simple edits.  I could move all the data into a 
SQLite db and just make a single-card Rev interface; the client's used to 
using HC and Rev stacks so I have a slight preference to keeping it as a stand 
alone stack working as they're used to, but could overcome that if I had to.

I'm sure that there is wisdom in the community about this!  Would storing the
data as stack properties and retrieving it into and out of a single card be
faster than leaving Rev to handle it as a card data?  (The data is all
unstyled text, btw - half a dozen or so small fields, a couple of largeish
ones.)  Or is there some magic trick to make Rev handle stacks of this kind
more efficiently?  Or is it something to do with importing from HC?  Or is it 
an IDE issue?

If I do move the data into custom properties and have a single card for 
editing, are there known benchmarks - disk space, memory usage, speed - 
comparing one property for each 'field', or a single property with '2d' keys, 
or those fancy new-fangled 2d arrays?  That is, for example:
	the uTitles[iOldCard] of this stack
	the uAllData[iOldCardID,"Title"] of this stack
	the uAllData[iOldCardID]["Title"] of this stack

All wisdom gratefully received.

Ben





More information about the use-livecode mailing list