Memory Leak
- To: mathgroup at smc.vnet.net
- Subject: [mg66811] Memory Leak
- From: Lawrence Weintraub <lcw at astro.caltech.edu>
- Date: Wed, 31 May 2006 06:31:07 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I've looked through the many comments on memory leaks and cannot solve my montonically increasing memory usage. Setting $HistoryLength=0 doesn't help. Using ClearCache[] doesn't do much either. If anyone could help me, I'd be very grateful. My (simplified) code is: $HistoryLength=0; memEater[smin_?Positive, smax_, sigma_?Positive, fluxes_] := Module[{s, snew, snoise, result, noisevec, bigvec, ds = 0.01, likes, likeFunc,t}, snMin = -40.*sigma; s = Range[Min[fluxes], Max[fluxes], ds]; snoise = Range[snMin, -snMin, ds]; noisevec = Exp[-(Range[snMin, -snMin, ds])^2]; bigvec = ListConvolve[noisevec, Abs[s], {1, -1}, 0.0]; snew = Range[s[[1]] + snoise[[1]],s[[-1]] + snoise[[-1]],ds]; s =.; snoise =.; noisevec =.; t = Transpose[{snew, bigvec}]; likeFunc = Interpolation[t]; t =.; snew =.; bigvec =.; likes = likeFunc[#] & /@ fluxes; Clear["likeFunc$*"]; result = If[Min[likes] < 0, -10.*Length[fluxes], Plus @@ (Log[#] & /@ likes)]; likes =.; result]; When I run this: ct = 0; mem0 = MemoryInUse[]; fluxes = Table[Random[]*35. - 5., {i, 1000}]; Do[mem = MemoryInUse[]; res = memEater[.2, 30., 0.3, fluxes]; Print[MemoryInUse[] - mem0]; Developer`ClearCache[]; Print[MemoryInUse[] - mem0];,{10}]; From In[82]:= 46080 From In[82]:= 46080 From In[82]:= 93320 From In[82]:= 93320 From In[82]:= 140560 From In[82]:= 140560 From In[82]:= 187800 From In[82]:= 187800 From In[82]:= 235040 From In[82]:= 235040 From In[82]:= 282280 From In[82]:= 282280 From In[82]:= 329520 From In[82]:= 329520 From In[82]:= 376760 From In[82]:= 376760 From In[82]:= 424000 From In[82]:= 424000 From In[82]:= 471240 From In[82]:= 471240 Larry Weintraub Astrophysics California Institute of Technology 1200 E California Blvd MC 105-24 Pasadena, CA 91125 lcw at astro.caltech.edu 626-395-4051