2012-02-17 9 views
3

Является ли JVM способным находить большие круглые ссылки и собирать объекты? Есть ли официальная документация/ссылка, которая заявляет то же самое? или у вас есть хорошие/плохие впечатления от сбора мусора больших круглых ссылок.Большой круглый справочник и сборщик мусора JVM

ссылка Обновление: http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442

+2

Да, это так. Какая документация вам нужна? – alf

ответ

11

С упрощенного вида JVM использует Tracing Garbage Collection, Mark-and-Sweep. Циркулярные ссылки не мешают правильному поведению такого алгоритма, поскольку он начинается с «базового» уровня и работает через ссылки, чтобы найти те элементы, которые могут быть достигнуты оттуда. Любой, который не может быть достигнут, доступен для сбора/освобождения.

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

3

Да. Сборщик мусора JVM может иметь дело с циркулярными ссылками.

Сборщик мусора, используемый JVM, не является сборщиком мусора, использующим ссылку. Вместо этого он находит мусор, отслеживая ссылки, которые все еще доступны (ссылки на все стеки потоков или статические ссылки).

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