MathGroup Archive 2003

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

Search the Archive

Odd memory behavior, and uncontrollable memory growth

  • To: mathgroup at smc.vnet.net
  • Subject: [mg40019] Odd memory behavior, and uncontrollable memory growth
  • From: nafod40 <may106 at SPAMAWAY.psu.edu>
  • Date: Sun, 16 Mar 2003 02:21:01 -0500 (EST)
  • Organization: Penn State University, Center for Academic Computing
  • Sender: owner-wri-mathgroup at wolfram.com

Hola,

We are writing code where semi-complicated functions get run thousands 
of times in packages. when we do this, we are getting memory use growth 
that eventually drives the system to virtual memory, and severe speed 
penalties.

I have been trying to gain an understanding of this process, and came up 
with the following odd example that makes no sense to me. Can someone 
explain?

a=MemoryInUse[];
(q=tempFunk[10000];1);
d=MemoryInUse[];
d-a

The memory bumps up by 1080 bytes per iteration. It  climbs, but slowly. 
I figure that is justified by the In[] and Out[] storage. Now one small 
change...

a=MemoryInUse[];
(q=tempFunk[10000];);
d=MemoryInUse[];
d-a

Now the memory jumps by 80,000 bytes per iteration! All I did was remove 
the "1" from within the parentheses. What's up with that? I tried this...

a=MemoryInUse[];
(q=tempFunk[10000];);
q=1;
d=MemoryInUse[];
d-a

To force the clearing of 'q', still it jumps by leaps and bounds. Any 
ideas why?







  • Prev by Date: Re: How to apply one plot range to another plot?
  • Next by Date: Re: How to apply one plot range to another plot?
  • Previous by thread: Re: FindRoot problem
  • Next by thread: Re: Odd memory behavior, and uncontrollable memory growth