Нужны разъяснения по сборке мусора Java Копирование коллекторов - PullRequest
1 голос
/ 04 января 2012

Это просто для разъяснения моего понимания сборщиков мусора, копирующих java.

Это та же логика, что и =>

Я перемещаю гроздь винограда из одного ящика в другой, и весь виноград, которого нет в гроздьях, остается в ящике, пригодном для сбора мусора.

Некоторые могут посчитать мое понимание глупым, поскольку я хочу пояснить здесь, что время, затраченное на проверку эталона.

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Пример с виноградом в порядке.

Когда ГХ работает наиболее эффективно, предполагается, что только небольшая часть данных должна быть скопирована в следующее пространство. Если вы храните большую часть данных, пространство (eden или Survivor) может быть недостаточно большим или у вас слишком много данных со средним сроком жизни. (С которым GC не справляется особенно хорошо)

0 голосов
/ 04 января 2012

Да,

Java использует 'Mark And Sweep Algorithm' для создания объектов, подходящих для сбора мусора.

Это похоже на ваш пример с виноградом.JVM помечает все объекты, на которые больше нет ссылок, значением «1», после чего все неприемлемые объекты остаются со значением «0».Когда алгоритм запускается, он сканирует все объекты со значением «1».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...