MathGroup Archive 2004

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

Search the Archive

Re: Garbage collection problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg51953] Re: Garbage collection problem
  • From: sean_incali at yahoo.com (sean kim)
  • Date: Fri, 5 Nov 2004 02:19:18 -0500 (EST)
  • References: <cm7d0u$lho$1@smc.vnet.net> <cma0s1$8vg$1@smc.vnet.net> <cmcmbs$ics$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

> Thanks for looking at this.  However, your suggestion actually made
> things worse.  Now, my memory usage increases each time I "run" example
> a, as well as example b.

are you monitoring it as the module is running? like by use of task
manager type of program?

try this... 

In[25]:=
(*Setup*)eq={9.8*(0.99*Cos[qS[t]]+0.01*Cos[qH[t]+qS[t]])-0.01*Sin[qH[t]]*
qH'[
                t]*qS'[t]-0.01*Sin[qH[t]]* qH'[t]*(
        qH'[t]+qS'[t])+(0.001+0.01*Cos[qH[t]])* qH''[t]+(
          0.982+0.02*Cos[qH[t]])*
          qS''[t]\[Equal]0, 0.1*Cos[qH[t]+
            qS[t]]+0.01*Sin[qH[t]]*qS'[t]^2+0.001* 
        qH''[t]+(0.001+0.01*Cos[qH[t]])*qS''[t]\[Equal]0, 
          qS[0]\[Equal]1.71,qS'[0]\[Equal]-1.01,qH[0]\[Equal]2.84,
qH'[0]\
\[Equal]1.1}; vars={qS[t],qH[t],qS'[
    t],qH'[t]}; test=qH[t]&#8805;Pi&& 2*Cos[qH[t]/2]*
        Cos[qH[t]/2+qS[t]]*Sin[Pi/180]+ Cos[Pi/180]*(Cos[
        qS[t]]*Sin[qH[
          t]]+(1+Cos[
            qH[t]])* Sin[qS[t]])<-0.01&&
Cos[qH[t]+qS[t]]*Derivative[1][qH][
            t]+(Cos[qS[t]]+Cos[qH[t]+qS[t]])*
Derivative[1][qS][t]<-0.01||
    Abs[qH[t]]<Pi/6||Sin[qS[t]]<1/4; $HistoryLength=0; (*end*) 


In[26]:=
arun[do_]:= Module[{}, Do[ soln=NDSolve[eq,vars,{t,0,2}][[1]];, {do}]
]


In[36]:=
arun[20] 
MemoryInUse[] 
Share[]
Share[]
arun[200] 
MemoryInUse[] 

Out[37]=
2999248

Out[38]=
264

Out[39]=
0

Out[41]=
2998864


above shows that once you use Module in combination with Share[] (
twice), the memory usage between runnign the module 20x vs 200x is
relatively miniscule.
out38 and 39 show how much Share[] has released. 

similar with the example b. 

In[42]:=
brun[do_]:= Module[{}, Do[ soln=NDSolve[eq,vars,{t,0,
      2},StoppingTest->test][[1]]; , {do}]] 


In[43]:=
brun[20] 
MemoryInUse[] 
Share[]
Share[]
brun[200] 
MemoryInUse[] 


Out[44]=
3057560

Out[45]=
456

Out[46]=
0

Out[48]=
3908176


> Is this problem related to my version/platform of Mathematica?

i'm running windoze xp Mathematica 5.0

> Does anyone know of an equivalent for "ls -l" that I could run on
> Mathematica to track down the memory hog?  I tried several things, but 
> it looks like this memory is out of my reach.
> 
> For example,
> (* begin *)
> objects = Names[];
> sizes = Table[ByteCount[objects[[i]]], {i, Length[objects]}];
> Total[sizes]
> (* end *)

> Running this code snippet doesn't show any increase in the memory used 
> by my objects, even though MemoryInUse[] does.  Therefore, I want to 
> know, where is my memory going?


  • Prev by Date: Re: any tool/package to solve markov chain?
  • Next by Date: Re: Problems about Graphics
  • Previous by thread: Re: Garbage collection problem
  • Next by thread: Re: Garbage collection problem