Given the following heap region type layout at the start of a full GC:
SCCCscccSCCCOOO....
(Legend:
S = humongous starts region
C = humongous continues region
s = humongous starts region that is going to be freed in this full GC
c = humongous continues region to be freed in this full GC
O = region containing live old data
. = free region
)
At the end of full GC the heap looks like this:
SCCC...SCCCOOO....
I.e. during compaction the full GC did not consider the not live humongous regions as compaction targets. This may leave some space unnecessarily committed after full GC particularly as humongous objects are never moved.