The current implementation includes heap resizing (and potentially related logic) as part of the full-GC process, but this responsibility may be better placed within the heap itself. This design quirk becomes more evident at the end of `G1FullCollector::complete_collection`, where a series of `heap->...` invocations suggest that such post-GC operations conceptually belong to the heap.
Ideally, the heap should be notified upon full-GC completion and handle any necessary resizing or adjustment itself, rather than having the full-GC logic directly manipulate heap internals.
Revisiting this boundary could help clarify component responsibilities and reduce the need for additional arguments in full-GC entry points -- particularly when improving post-full-GC resizing policies, such as inJDK-8355756.
Ideally, the heap should be notified upon full-GC completion and handle any necessary resizing or adjustment itself, rather than having the full-GC logic directly manipulate heap internals.
Revisiting this boundary could help clarify component responsibilities and reduce the need for additional arguments in full-GC entry points -- particularly when improving post-full-GC resizing policies, such as in