Dan Armbrust wrote:
> Tom Marble wrote:
>> The Sun JVM will run up to -Xmx at 4 GB (well around 3880) on those
>> operating systems that will support it.
> 
> Really?  Ok, now I had to go run some experiments.
> 
> On my windows XP machine, with 2 GB of RAM, the max I can launch at is 
> -Xmx1500M
> 
> On a 32 bit Fedora Core 3 install with 3 GB of physical RAM, I can get 
> up to  -Xmx3750M - (today - strange thing is I _know_ I couldn't get 
> this high previously - I don't know what system setting I have changed 
> to let me go higher...)
> 
> So, where can I find the documentation that explains how the OS caps 
> these numbers?  Is there a way to raise the cap on windows?
We are working on a new 64-bit FAQ (not yet public, sorry ;-)

Here's a snippet for the Window's thing:

Why can't I get a larger heap with the 32-bit JVM?

The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to
various additional constraints such as available swap, kernel address
space usage, memory fragmentation, and VM overhead, in practice the
limit can be much lower. On most modern 32-bit Windows systems the
maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris
kernels the address space is limited to 2G. On 64-bit operating
systems running the 32-bit VM, the max heap size can be higher,
approaching 4G on many Solaris systems.

As of Java SE 6, the Windows /3GB boot.ini feature is not supported.

If your application requires a very large heap you should use a 64-bit
VM on a version of the operating system that supports 64-bit
applications. See Java SE Supported System Configurations for details.

See also:
http://java.sun.com/j2se/1.5.0/system-configurations.html
http://www.unixville.com/~moazam/2004/06/03.html
http://blogs.sun.com/roller/page/moazam?entry=why_can_t_i_allocate#comments

HTH,

--Tom