Понимание GC G1 - фаза одновременной маркировки - PullRequest
1 голос
/ 06 мая 2019

Я пытаюсь понять кое-что о GC G1 и надеюсь, что вы, ребята, сможете мне помочь.

  1. Какова роль всей фазы параллельной маркировки в GC G1?Я имею в виду все части (начальная маркировка, сканирование корневой области, ..., очистка).

Насколько я понимаю, его роль состоит в том, чтобы отмечать все живые объекты, достижимые из корневых областей (которые на этапе одновременной маркировки являются областями выживших, выбранными в части «начальная отметка») и оценивать жизнеспособность длястарые регионы (база, на которой они будут выбраны для сбора для паузы смешанной эвакуации).Я прав?

Какие объекты помечены как мусор в старых регионах во время смешанной эвакуационной паузы?

Если я правильно понимаю, смешанная эвакуационная пауза помечает и удаляет объекты, недоступные для корней GC и запомненных наборов.Это другой набор объектов, которые помечены одновременно, поэтому эти объекты могут перекрываться, но это не обязательно.Я прав?

Что такое корни GC?Одинаковы ли они для молодой и смешанной коллекции (кроме ссылок из запомненных наборов в смешанной коллекции)?

Правильно ли мое резюме ниже?

Полностью молодая коллекция отмечает все живые объекты (что означает, что они достижимы для корней GC) из регионов Эдема и выжившего и эвакуирует (копирует) их в новые (или старые) регионы.Остальные объекты считаются мусором и удаляются.Свободные регионы возвращаются.

Параллельная фаза маркировки в начале помечает все выжившие регионы, которые могут иметь ссылки на старые регионы (основанные на запомненных наборах?).Регионы выживших здесь рассматриваются как корни GC, потому что эта часть происходит во время совсем молодой коллекции, поэтому мы уверены, что все объекты в ней живут.Затем GC просматривает график объектов (начиная с объектов из выбранных регионов выживших) и отмечает все живые объекты.

В паузе смешанной эвакуации, основанной на статистике живучести (подсчитанной на предыдущем этапе),некоторые старые регионы выбраны для сбора.Затем все живые объекты из выбранных регионов эвакуируются (копируются) в новые регионы (живые средства: a. Выбраны во время одновременной маркировки и b. Как в стандартной паузе эвакуации - которые достижимы из корней GC и запомненных наборов).Остальные объекты удаляются как мусор, а регионы утилизируются.

...