[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: about memory

Craig Markwardt wrote:

> Amar Nayegandhi <anayegan@csee.usf.edu> writes:
> > This is a general question about memory management.
> > can i free memory allocated to an array if I have finished using it in
> > the program?  suppose
> > arr_a = fltarr(10000,10000)
> > if i don't need array arr_a anymore, would
> > arr_a = 0
> > free the memory used by arr_a?  I would expect it to now utilize only
> > 2(or 4) bytes of memory.
> The answer to the question is "yes," but also "it depends."  The
> answer is "yes" because the memory is indeed made available again to
> the same IDL process.  I use
>   A = 0
> every day when I am done with a variable.  It's totally legit.  Hong
> may need go no further than this, although I agree that he's dealing
> with extremely large arrays which might be better suited with a tiled
> or chunked approach.
> The answer is also "it depends," because it depends on which platform
> you are using.  I believe that under Windows the memory is actually
> returned to the OS.  Thus, other programs are able to use the memory
> again.  Under Unix this is much less likely, so once the memory is
> allocated to one session of IDL, it stays there until the session ends
> (and is not available to another process).  [ I think this is not
> *always* true, but mostly true. ]
> Every so often somebody asks, "why is IDL eating all my memory?"  It's
> basically unavoidable.  Sorry for this diversion.
> Craig
> --
> --------------------------------------------------------------------------
> Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
> Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
> --------------------------------------------------------------------------

Just curious - why not 'delvar,a'? Is this not as effective (or more so) than