Сборка мусора JVM: В чем разница между "оставшийся в живых 1" и "оставшийся в живых 2"?
В сборщике мусора виртуальной машины Java от Oracle, каковы соответствующие роли "оставшийся в живых 1" и "оставшийся в живых 2"?
Всегда ли объекты движутся как: Эдем → Выживший 1 → Выживший 2
Или объект может перепрыгнуть прямо из Eden в Survivor 2?
Будет ли "Выживший 3" бессмысленным, или все может быть в порядке, но считалось, что двух достаточно?
1 ответ
Решение
Survivor1 и Survivor2 используются попеременно. Незначительные сборщики мусора сканируют все в одном пространстве выживших и перемещают все, что еще необходимо, в другое, так что нужно ровно два.