GC принудительно запускается до того, как выдается OutOfMemoryError.Если JVM реализует несколько разновидностей GC (например, «одновременный» или «частичный»), GC «Остановить мир» будет запущен до того, как JVM сдастся, поэтому были предприняты все возможные усилия, чтобы избежать ошибки.
Исключением является то, что, если GC многократно запускается и восстанавливает только минимальный объем памяти (и размер кучи не может быть увеличен в дальнейшем), он будет добавлен в полотенце, а не продолжит работу в режиме "сканирования".Теоретически, для этого случая немного увеличивающийся размер кучи позволил бы «хорошему» приложению работать нормально, но приложение, которое медленно жует кучу (что не является необычным), не получило бы выгоды от небольшого увеличения кучи и столкнулось бы стот же сбой только чуть позже.
[Следует отметить, что в случаях, когда GC работает слишком часто, увеличение размера кучи может значительно снизить издержки GC, , если ,приложение хорошо себя ведет и просто случайно работает вблизи предела кучи.(Конечно, увеличение размера кучи до уровня доступной оперативной памяти обычно замедляет работу приложения.)]