Due to the way these objects are allocated in G1, they may take up much more memory than expected.
The goal should be to ensure that concurrent marking completes on time.
We propose a scheme where we exploit indegrees and outdegrees to discover changes to the graph.
If these phases take too long, then consider enabling parallelization of these phases by using the option Young-only and, in general any young collection roughly takes time proportional to the size of the young generation, or more specifically, the number of live objects within the collection set that needs to be copied. This decreases the minimum size of the young generation, allowing for potentially shorter pauses.Potential options in this case are increasing the heap region size by using the option to decrease the number of humongous objects, or increasing size of the heap.In extreme cases, there might not be enough contiguous space available for G1 to allocate the object even if available memory indicates otherwise.This includes the type of collection and a breakdown of time spent in particular phases of the pause.