Memory Problems

Dave Cragg dcragg at lacscentre.co.uk
Thu Feb 20 19:26:00 EST 2003


At 12:14 pm -0800 20/2/03, Ray Horsley wrote:
>Thank you xbury and Pierre,
>
>I appreciate the suggestions, however, I've opened all 36 stacks I'm using
>for testing, set the Destroy Stack on Close and the Destroy Window on Close
>to true, and I also set the Always Buffer to false for all of them.  Sorry,
>no change.  I still find Metacard increasing in memory from about 17 megs to
>a little over 30 if I go to or refer to each of them.  Any other ideas?
>
>Thanks,
>

I  remember having a similar problem a few versions ago. I found that 
the stacks weren't cleared from memory until the current handler 
stopped running. So in a repeat loop like yours, memory won't get 
cleared until after the loop finishes.

Things to try:

Add a wait after you have handled a certain number of stacks. For 
example, you could try adding the following line at the end of your 
repeat loop to wait after every 5th stack:

repeat with L=1 to number of lines of allStacks  -- list of 30 stack paths
   ##other stuff here
   delete stack stackPath
   if L mod 5 = 0 then wait 100 milliseconds  ##add this
end repeat

If that doesn't work, try using "send ... in <time>". Something like:

repeat with L=1 to number of lines of allStacks  -- list of 30 stack paths
   put line L of allStacks into stackPath
   send "doStuff stackpath" to me in 20 milliseconds
end repeat

on doStuff stackpath
   set the defaultStack to stackPath     -- or go stack stack path
   -- do some stuff like set scripts and save the stack
   delete stack stackPath
end doStuff

Cheers
Dave



More information about the metacard mailing list