Application Server Solutions for Microsoft IIS and ASP.NET
       solutions   products   partners   company   support   downloads         store
ServletExec Self-Help: FAQ
Back to Search >  Back to Search Results

Faq ID 320
Product ServletExec
Category VM Settings, VM Support
Question Does a JVM have any limitations on the amount of RAM I can allocate to the JVM's Heap?

The majority of this FAQ deals with 32-bit (x86) JVMs. For 64-bit (x64) JVMs please see the very bottom of this FAQ.

See the following java forum thread:

One of the posts on that thread (in Dec. 2003) stated:

From what I've read and from personal experience, the limits are about:
  • Solaris 2.6 and x86 - 2GB
  • Solaris 7 and Solaris 8 SPARC - 4GB
  • Mac OS X - 2GB
  • Win (2000/XP) - 1648 MB
  • AS/400 / iSeries (V5R1M0) - Using os400.gc.heap.size.max (overwrites Xmx) 139,264,000 KB. If not set the setting defaults to *NOMAX which is around 240 GB

We've also found other supporting details online which are summarized as follows:

On 32-bit processor machines, the largest contiguous memory address space the operating system can allocate to a process is 1.8GB. Because of this, the maximum heap size can only be set up to 1.8GB. On 64-bit processor machines, the 1.8 GB limit does not apply, as 64-bit processor machines have a larger memory address space.

This web page is enlightening as well.

Readers of this FAQ may also find FAQ #380 to be helpful.

company media information terms of use privacy policy contact us