IBM User Guide for Java V7 on Windows > IBM SDK for Java > The collector and the allocator > Generational Concurrent Garbage Collector



Split heap

A split heap allocates the new and old areas of the generational Java™ heap in separate areas of memory. A split heap forces the Garbage Collector to use the gencon policy and disables resizing of the new and old memory areas. Use the -Xgc:splitheap command-line option to enable the split heap. This option is available on the Windows 32-bit JVM only.

A break in the Windows address space limits the Java heap to less than 2 GiB. Use a split heap to allow the Java heap to exist on both sides of the break in address space. You might be able to allocate a larger heap compared with the use of one contiguous area of memory. By using a larger heap, you can allocate more objects before incurring a garbage collection and you can increase the number of live objects that you can use before an OutOfMemoryError exception occurs.

Restriction: A Windows 32-bit process is limited to a 2 GiB address space unless the /3GB option is specified in the boot.ini file. See Windows 32-bit large address aware support for more information.

With a split heap, the old area is committed to its maximum size (set with -Xmox) in a lower region of memory and the new area is committed to its maximum size (set with -Xmnx) in a higher region of memory.


Allocation failures

With a split heap the JVM can fail at startup in more ways. The following messages are caused by failure to allocate a split heap:

JVMJ9GC056 Failed to allocate old space

There is not enough free space in lower memory to allocate the old area. To resolve the problem, reduce -Xmox.

JVMJ9GC056 Failed to allocate new space

There is not enough free space in higher memory to allocate the new area. To resolve the problem, reduce -Xmnx.

JVMJ9GC056 Required split heap memory geometry could not be allocated

The new area was allocated lower than the old area. To resolve the problem, reduce -Xmx.


Maximum heap sizes

The typical maximum heap sizes are as follows:

Windows XP 32-bit on 32-bit hardware using the 32–bit JVM

1800 MiB old area and 1000 MiB new area.
-Xgc:splitheap -Xmx2800m -Xmox1800m

Windows XP 64-bit on 64-bit hardware using the 32–bit JVM

1700 MiB old area and 2000 MiB new area.
-Xgc:splitheap -Xmx3700m -Xmox1700m

Applications have lower limits if they load a large number of classes, load a large number of native libraries, or start several threads.


Parent: Generational Concurrent Garbage Collector








Error 404 - Not Found

Error 404 - Not Found

The document you are looking for may have been removed or re-named. Please contact the web site owner for further assistance.