Ben Rubinstein wrote:

> The real problem is that the script was written originally 13 years
> ago, and the basic architecture was to load everything into large
> global arrays for cleanliness. Over that period, the size of the data
> has multiplied over the years by 1-2 orders of magnitude....

Just how big is the data you need to work with in RAM at any given time?


> My two biggest problems are:
>
> - LC just in effect crashes/halts, rather than throwing an error so
> the app could at least report the problem

The challenge with low-memory conditions are that if there isn't enough RAM to operate normally there may not be enough RAM to report that through normal error-handling mechanisms.

It would certainly be nice to have reliable out-of-memory reporting, but I've never seen in it any xTalk yet.


> - as far as I can tell, when I empty globals etc the memory isn't
> being recovered.  This is really the root of my problem.

At first glance that sounds like a bug. If you can find a way to create a simple test case to demonstrate a global not freeing up RAM after being emptied I'll bet the team could fix it quickly.

Grasping at straws here, I wonder if introducing an idle after the emptying might help, e.g.:

  put empty into gSomeVar
  wait 0 with messages

That should normally surrender control to the OS event loop, and if that's needed to complete the clearing of the RAM you may have a workaround for now.

I'd still call it a workaround, though, since we can't expect newcomers to be able to guess about such things; ideally the engine would clear memory when we ask it to.

If "put empty..." doesn't work, I wonder if this might trigger something more complete:

  delete variable gSomeVar

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to