Re: Re: Freeing memory in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg19558] Re: [mg19546] Re: Freeing memory in Mathematica
- From: David Withoff <withoff at wolfram.com>
- Date: Wed, 1 Sep 1999 23:06:58 -0400
- Sender: owner-wri-mathgroup at wolfram.com
> bettina_hansen at writeme.com wrote in message <7q9g8i$o43 at smc.vnet.net>... > >Hallo everyone. > > > >I was trying to make a Mathematica program which make some calculations > >on several long (and very large) lists. However, after the calculation > >of each list, the list is no longer needed. So I tried to delete it > >using listname=. However it seems that this is not working in the sense > >that it is still present in memory. The lists are saved in values for Out. > >Finally I found out how to free the > >memory, see the following. Can anyone tell me how to do this more > >'nice'? (i.e. without the use of the NoUse variable?) > > > > Print[MemoryInUse[]] > > list=Table[Sqrt[i],{i,1,20000}]; NoUse=1; > > Print[MemoryInUse[]] > > list=. > > Print[MemoryInUse[]] > > > >Gives: > > 836032 > > 1906744 > > 836352 You can set $HistoryLength to zero if you do not want results saved in values for Out, or you could put any small, non-Null expression in place of "NoUse=1". > It turns > out that you can replace the assignment of NoUse by anything with a non-null > value - e.g. the number 42. It also seems that even when the memory in use > does not go down, if you test it afterwards it HAS gone back down - so my > guess is that Mathematica is holding on to the value as a possible return > value from the compound expression > > David Bailey > Salford Software > db at salford-software.com Yes, the value of Out records the last non-Null result if the input was a compound expression. Dave Withoff Wolfram Research