[jvm] Подсказки для GC

yroslavasako

Какие ещё есть подсказки для GC помимо weak reference? Можно как-нибудь для нектурой структуры данных (взаимноссылающуейся) объявить что-нибудь вроде отдельного неймспейса, который можно освобождать разом, без утомительных проверок на циклы?

fisher555

А у тебя какой-то специфичный коллектор? Они же маркирующие, как правило. Если я правильно понял твое описание, то у тебя есть какая-то структура данных, в которой существуют ссылки между ее элементами (типа связного списка) и на эту структуру существует некоторое количество week reference-ов извне. В этом случае jvm должна "игнорить" контент week reference-ов и считать, что это мусор, так что маркирующий процесс даже не дойдет до контента структуры, который останется не помеченным и будет собран. Кстати, не слышал, что в маркирующих коллекторах бывают проверки на циклы (ибо зачем? - при разметке на циклическую структуру не будет пути из корней графа объектов они там реально есть?
P.S. Что значит освобождать неймспейс не понял - неймспейс содержит классы и если на объекты этих классов существуют референсы, то они не должны удаляться иначе ад какой-то получается.

yroslavasako

ясно. подсказок не надо, сам пусть разбирается. да, я думал как надёжнее убивать рукописную структуру вроде двунаправленного списка. О jvm знаю мало и исходил из худших предположений, поэтому думал писать деструктор, который в next и prev всех элементов запишет null, и вызывать его, когда список уже не нужен.

fisher555

Могу посоветовать небольшие материалы по теме:
Использование ссылочных классов в Java http://habrahabr.ru/post/169883/
Основы работы GC в Hotspot http://www.ibm.com/developerworks/java/library/j-jtp10283/
Времени убьешь немного, зато интересно. :)
Оставить комментарий
Имя или ник:
Комментарий: