2012-02-16 3 views
1

Я говорю о UseParNewGC. Мое понимание частичной коллекции java gc происходит следующим образом. Когда JVM обнаруживает, что Эдем полон (или он не может запрос отвечают соответствующим требованиям распределения)что вызывает java minor gc

  1. Он останавливает все темы приложения
  2. Вычисляет живые объекты в Эдеме и одного выжившего пространства, и перемещает их в другую
  3. Если места для движения недостаточно, или если оставшиеся в живых объекты являются старыми, достаточно, то это продвижение в старый ген.
  4. Маркировка eden и очищенный оставшийся в живых как пустой
  5. Приводит к приложению приложений.

Правильно ли это? Есть ли случай, когда незначительный gc будет запущен, даже если eden не заполнен?

+0

Eden и исходное пространство оставшихся в живых опорожняются, они не просто отмечены как пустые, они перезаписываются нулями (или некоторым другим более подходящим значением). – Erik

ответ

1

Я думаю, что вы получили право. Бывают ситуации, когда основной GC запускается по причинам, отличным от полного пространственного пространства, например, вызов System.gc() или RMI. В этом случае также будет выполняться небольшой GC.

+0

На самом деле я спрашиваю о незначительном gc. PS: У меня нет вызовов system.gc или RMI. –

+0

В дополнение к правилам, которые вы перечисляете, некоторые реализации JVM могут принять решение о росте молодого поколения вместо или в дополнение к выполнению небольшой коллекции. Кроме того, определение «полного» Идена может зависеть от ситуации или настраиваться параметрами виртуальной машины. Эти правила иногда довольно сложны: для Sun/Oracle JVM вы можете найти некоторые подробности здесь, если просеиваете длинный документ: http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523. HTML –

0

Когда jvm обнаруживает, что эден заполнен (или он не может удовлетворить запрос на распределение) В некотором смысле, да. Но он динамически формирует поколение для достижения определенных целей коллекционера. В основном приостановить время и долю времени процессора, затраченного в GC.

Так косвенно эти цели диктуют, как часто происходят небольшие коллекции. Основные коллекции также могут запускать небольшую коллекцию, прежде чем они начнут уменьшать ссылки на старые объекты из недолговечных молодых.

Смежные вопросы