more than 1.6GB ram

S

Suresh

Hi

I am new to this group.
I run a java program on windows 2000 and
it currently uses about 1.6GB of ram, but it
cant go past that - i.e the machine has 4GB
and I want to utilise it all, but my mx setting wont
go beyong the 1.6GB

Any one had any simialr issues

Does any know if tiger resolves this?
I currently use 1.4

Regards
SP
 
M

Michael Borgwardt

Suresh said:
I am new to this group.
I run a java program on windows 2000 and
it currently uses about 1.6GB of ram, but it
cant go past that - i.e the machine has 4GB
and I want to utilise it all, but my mx setting wont
go beyong the 1.6GB

Any one had any simialr issues

Does any know if tiger resolves this?

Java can't do anything about the fact that Windows 2000 on a
32bit machine allows a maximum of 2GB address space for any
process. The JVM needs part of that for other purposes than
heap memory, so the 1.6GB limit is pretty absolute.
 
M

Mark Thornton

Michael said:
Java can't do anything about the fact that Windows 2000 on a
32bit machine allows a maximum of 2GB address space for any
process. The JVM needs part of that for other purposes than
heap memory, so the 1.6GB limit is pretty absolute.

Some versions of Windows will a 3GB user address space for specially
marked processes. Of course you would then have to convince Java to use
it (and rebase a lot of DLLs to ensure that there was sufficient
contiguous memory for the heap).

Mark Thornton
 
A

Alan Meyer

Michael Borgwardt said:
Java can't do anything about the fact that Windows 2000 on a
32bit machine allows a maximum of 2GB address space for any
process. The JVM needs part of that for other purposes than
heap memory, so the 1.6GB limit is pretty absolute.

Michael's answer is exactly right.

You _might_ be able to benefit from running two
JVMs, each of which can use up to 1.6 GB. But
it's questionable whether your application is
organized to benefit from that, whether the overhead
of context switch and interprocess communication
will be too great, or whether you'll be able to get
the full 1.6 GB for each process since the
machine is still doing other things and the
OS still tries to reserve some space for itself.

Your best bet is probably to try to figure out
exactly how all that memory is being used and
whether some combination of logic redesign
and choice of different data structures will do
more to solve your memory problem. For example,
if you're using complex container classes, maybe
simpler ones will do as well. Or if you're using lots
of int and char data, perhaps short and byte data
will do as well. And most especially, if you're holding
references to objects that you really do not any
more, can you release them?

Alan
 
G

Grant Wagner

Mark said:
Some versions of Windows will a 3GB user address space for specially
marked processes. Of course you would then have to convince Java to use
it (and rebase a lot of DLLs to ensure that there was sufficient
contiguous memory for the heap).

See the "/3GB" switch at <url:
http://www.sysinternals.com/ntw2k/info/bootini.shtml /> for information
about what Mark is referring to. Note that of the Windows 2000 family, only
Advanced Server and Datacenter Server (although I seem to recall reading
that Server understands it too) understands it, and the application itself
(presumably the JVM?) needs to be 3GB "aware".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,682
Members
48,796
Latest member
Greg L.

Latest Threads

Top