Re: IDL - freeing up used memory? [message #89904 is a reply to message #84376] |
Mon, 22 December 2014 05:05   |
ptomar2006
Messages: 1 Registered: December 2014
|
Junior Member |
|
|
On Thursday, May 30, 2013 2:20:46 AM UTC+9, David Fanning wrote:
> AMS writes:
>
>
>> I'm running into a memory issue which I am not certain whether is related to my IDL code or the machine the code is running on itself, and am wondering whether someone might be able to help me out. To start with, I'm using IDL 7.1.1 on CentOS, invoking via command line.
>>
> I think your memory is getting fragmented. I would think about doing two
> things. First, I wouldn't set your unused variables to 0, as I think
> that promotes fragmentation. I would use the Coyote Library routine
> UNDEFINE to get rid of them:
>
> http://www.idlcoyote.com/programs/undefine.pro
>
> But, maybe better than this, I would try (assuming they are always the
> same size) to reuse the memory you have already set aside for reading in
> the variables:
>
> FOR j=0,n DO ....
> IF N_Elements(inputVar) EQ 0 THEN $
> inputVar = ... ELSE $
> inputVar = Temporary(inputVar) * 0
> ReadU, lun, inputvar
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
> Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Hi David,
Hi,
I have the same problem with IDL 7.0 using on fedora 20. I have 8 GB RAM.
For example, my idl is using max memory 1.6 GB...not more than that
IDL> b=bytarr(1000,1000,1600)
IDL> help,/mem
heap memory used: 1601945318, max: 1601945409, gets: 2884510, frees: 2883617
If I give larger array, showing error
IDL> b=bytarr(1000,1000,1700)
% Unable to allocate memory: to make array.
Cannot allocate memory
% Execution halted at: $MAIN$
I do not know why my IDL is not using the available RAM memory.
Any help will be appriciated.
Thanks
Pankaj
|
|
|