| Re: memory issues redux [message #41579 is a reply to message #41577] |
Tue, 16 November 2004 03:11   |
Paolo Grigis
Messages: 171 Registered: December 2003
|
Senior Member |
|
|
R.G.Stockwell wrote:
> I'm trying to squeeze out as much of my ram as I can.
> The threads here have helped a lot, but I still have a couple issues
> and questions:
> [win xp pro sp2, 3.4ghz p4, 4gb ram]
>
> 1) I'm not clear as to the status of idlde being able to access the 3gb
> memory
> space (by changing the boot ini file to include a /3g command).
> Can v6.11 do that? Is idl "Large Address Space Aware" ?
> If I could get this working, that would be fantastic. I have not tried
> messing around with my boot ini file yet.
>
> 2) I used the editbin program to rebase the dlls, and saw no difference
> in the largest array possible. My best is a whimpy 940mb array.
> Is there any way to figure out what is going on in my ram, to see what
> dlls are loaded where, etc? Anyone know of a program that can defrag ram?
> I've googled and downloaded several ram defragers, but they don't have any
> effect on memory (in fact, they all see that I have 2gb of ram, and that
> I'm using
> 0kb if it). I also came accros a tech article saying that these types of
> programs
> are just a scam. So anyone know of a real program to manage ram? Or at
> least
> look at the ram to see what is loaded where?
>
> 3) how are idl memory limitations under linux? Is it limited to 2gb, or
> could
> one access more memory than that? I am interested in both (maximum array
> size, and total memory available), if I could have 2 arrays of 1.3gb each,
> that
> would be awesome!
Under Linux (32 bit), for a single array you can get as large as
2 GB (minus a couple of overhead bytes):
IDL> a=bytarr(1024L*1024*2047+1024L*1023+1014L);works
IDL> a=bytarr(1024L*1024*2047+1024L*1023+1015L)
% Array has too many elements.
% Execution halted at: $MAIN$
Which is due to the limitation of the indexing occurring with longs,
and therefore not being able to go beyond 0..2^31-1.
As for having more than one array, I was just able to allocate for
a second array b fewer memory than a, and for a third array c fewer memory
than b etc. Probably has to do with fragmentation of the available RAM (?).
Anyway I could get something like (d created after c, c after b, b after a, and
trying to get as much as possible):
IDL> help,a,b,c,d
A BYTE = Array[2147483638]
B BYTE = Array[465567744]
C BYTE = Array[232783872]
D BYTE = Array[143654912]
IDL> help,/mem
heap memory used: 2989922225, max: 3080099849, gets: 415, frees:
At least there is no limitation of total memory at 2 GB, but I'am
not sure if I could have gone above 3 GB...
IDL>help,!version,/st
ARCH STRING 'x86'
OS STRING 'linux'
OS_FAMILY STRING 'unix'
OS_NAME STRING 'linux'
RELEASE STRING '6.0'
BUILD_DATE STRING 'Jun 27 2003'
MEMORY_BITS INT 32
FILE_OFFSET_BITS
INT 64
> One option I have is installing linux on this computer and dual booting,
> and perhaps I could do
> some tests on some of the other linux boxes around.
>
> Cheers,
> bob stockwell
>
>
--
____________________________________________________________ ________
Paolo Grigis
ETHZ - Institute of Astronomy email: pgrigis@astro.phys.ethz.ch
Scheuchzerstrasse 7
ETH Zentrum phone: ++41 1 632 42 20
8092 Zurich fax : ++41 1 632 12 05
Switzerland http://www.astro.phys.ethz.ch/
____________________________________________________________ ________
|
|
|
|