In the G1 Full GC we now have a concept of setting attributes for regions. This is used for a few different things like if a region should be compacted. We could extend this to keep track of which regions were empty at the beginning of the Full GC and skip doing work for them in phase doing work per region. This will mostly be an enhancement for System.GC calls, because in most normal Full collections there are no or very few empty regions. But cases like the one in
JDK-8267703 would also benefit.