MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: memory release problem in mathematica6.0

  • To: mathgroup at smc.vnet.net
  • Subject: [mg83365] Re: memory release problem in mathematica6.0
  • From: Yaroslav Bulatov <yaroslavvb at gmail.com>
  • Date: Sun, 18 Nov 2007 04:52:14 -0500 (EST)
  • References: <fhegac$m08$1@smc.vnet.net> <fhh71o$8h2$1@smc.vnet.net>

Like several posters pointed out, it's saved in Out[].

It's a bit confusing because documentation for "CompoundExpression"
says that for expression of the form expr1;expr2; it's the value of
expr2 that's saved

so if I do
"A = RandomInteger[{1}, 100000000]; Clear[A];"

It should save value of Clear[A], which is null, but instead it saves
value of AA = RandomInteger[{1}, 100000000]



On Nov 17, 3:07 am, m... at inbox.ru wrote:
> It's hard to tell without seeing a specific example, but sometimes you
> need to make sure that the structure really was deallocated.
>
> In 6.0.1 under XP, if I monitor the memory usage with Task Manager or
> from Mathematica using
>
> Dynamic[Import[
>      "!tasklist /fi \"imagename eq math*\" /fo csv",
>      "CSV"] // Rest // Grid // Panel,
>  SynchronousUpdating -> False, UpdateInterval -> 1]
>
> and then evaluate
>
> In[2]:= A = Range[25*^6];
> In[3]:= Clear[A]
> In[4]:= Timing[A = Range[25*^6];]
> In[5]:= Clear[A]
>
> the memory usage doesn't drop after the first Clear[A] because A is
> still stored in Out[2], but it drops after the second Clear[A].
>
> Maxim Rytin
> m... at inbox.ru
>
> On Nov 16, 4:17 am, jack <giaber... at gmail.com> wrote:
>
> > What i was pointing out ( there is a typo error in my post ) is that
> > the MemoryInUse[] command of mathematica gives the correct result in
> > the sense that memory is released but the physical memory not yet. I
> > understand that memory management of mathematica is different from
> > that of the Operating System for speed reasons, but i think that
> > something goes wrong because, as is confirmed by Yaroslav Bulatov in a
> > successive post, when i clear a symbol ( of many elements, ~300MB )
> > and a reallocate it three or four times physical memory runs out and
> > the memory system swaps all the time  ( i' ve 756MB of RAM ) until i
> > shutdown the kernel.
> > I' d like to know if there is an explicit way to synchronize the
> > memory management of mathematica with that of the OS, because i think
> > that the behavior that i' ve just described must be avoided.
>
> > Thanks for your contribute.
>
> > Jens-Peer Kuska wrote:
> > > Hi,
>
> > > you think that Mathematica call the memory management functions
> > > of the operating system every time it aqquire or release memory ?
>
> > > This would probably incredible slow .. it will request memory from the
> > > operating system and integrate it inti its own memory management
>
> > > And the operating system show it't own memory management but not that
> > > of Mathematica ..
>
> > > Regards
> > >    Jens
>
> > > jack wrote:
> > > > Hi all,
> > > > When i define large data structures, for example an array  "A" of
> > > > million  of elements that occupy some  hundreds of MB of physical
> > > > memory,when i clear it, with Clear[A] memory isn' t released by
> > > > operating system. I' ve tried both on windows and linux.
> > > > The result of MemoryInUse[] command of mathematica but the physical
> > > > memory reported by the system monitor isn't released.
> > > > I' ve tried also ClearSystemCache[] but with no result.
> > > > Am i missing something?
>
> > > > Thanks!



  • Prev by Date: Re: Memory problem using NDSolve in For Loop
  • Next by Date: Re: Floor doesn't compute in some cases
  • Previous by thread: Re: memory release problem in mathematica6.0
  • Next by thread: Re: memory release problem in mathematica6.0