** Что java.lang.OutOfMemoryError: Java куча пространства означает ** Этот mesasge означает, что приложение просто требует большего пространства кучи Java, чем доступно для него, чтобы нормально работать.java.lang.OutOfMemoryError Ограниченный верхний предел GC превышен против пространства кучи Java?
Что java.lang.OutOfMemoryError ГК накладные расходы за предел средства Это сообщение означает, что по какой-то причине сборщик мусора принимает чрезмерное количество времени (по умолчанию 98% всего процессорного времени процесса) и восстанавливает очень мало памяти в каждом прогоне (по умолчанию 2% от кучи). Это внутренне также означает, что когда приложение просто требует большего пространства кучи Java, чем доступно для него, чтобы нормально работать.
Так что мой вопрос в том, какой сценарий из двух выше будет тригером?
Так вот мое понимание, когда определенное исключение будет выброшено на основе сценария: -
Say я выделил 1 Гб размера кучи. В настоящее время используется куча памяти 970 МБ. Начался поток (JVM не знает заранее, сколько памяти он будет потреблять). Теперь ОЕ может принимать одно из приведенной ниже стадии
1) виртуальная машина Java начинается выделение памяти, а затем в один момент времени он исчерпывает 1 Гб MEM и бросает `java.lang.OutOfMemoryError: Java куча пространство означает
2) GC запускается заранее и пытается освободить некоторую память, поскольку она знает, что в настоящее время используется память, близка к 1 ГБ, выделенной Heap. Но его не удалось освободить более 2% пространства в каждом последующем запуске . Тогда это будет throw
java.lang.OutOfMemoryError: превышен верхний предел GC`
Я понимаю, что это правильно в контексте моего вопроса?
Да ..Ur понимание совершенно выставляю. – SubbaReddy