Additional garbage collection runtime options | Sizing the large object area


6.3 The large object area



Overview

To help reduce heap fragmentation, the IBM GC policies have segmented the tenure space into two additional spaces...

A large object is considered to be any object 64 KB or greater in size. Tuning the large object area will not necessarily yield better performance outright; however, it may help reduce heap fragmentation, which can affect garbage collection execution time.


How JVM uses the LOA

All object allocations are first attempted in the SOA. If this is not possible and the object size is greater than or equal to 64 KB, then allocation is retried in the LOA. The LOA expands or shrinks according to the algorithm specified in the Java Diagnostics Guide. If the LOA is not used after a few collections, it is shrunk down to nothing. For the Generational Concurrent GC policy, the default initial size of the LOA is 5% of the current tenure area. The default maximum size is 50% of the current tenure area.

Because the LOA is sized dynamically, it is usually not necessary to change the default settings. But an application that utilizes many large object may require sizing of the large object area.

The LOA is allocated for all GC policies except subpool.