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