GWT Сборка мусора циклических заданий / ссылок - PullRequest
1 голос
/ 16 марта 2012

Я предполагаю, что GWT управляет сборкой мусора и способна предотвратить накопление приемника памяти (иначе говоря, утечка), когда виджет или переменная больше нигде не упоминаются в приложении.

Итакустановка ссылки / переменной на ноль недостаточна, потому что на этот виджет / объект можно ссылаться / ссылаться где-то еще в приложении.Особенно в Деревьях, где я хэширую информацию, связанную с древовидными элементами.

Если у кого-то есть возражения против вышеизложенных предположений, пожалуйста, выскажите свое мнение.

Хорошо, как насчет случая, когдакластер объектов ссылается друг на друга, но в целом нет цепочки ссылок, которая могла бы отследить их до любых активно используемых объектов / переменных.

Простой случай - это список с двойными ссылками, созданный из моего собственного списка с двумя связямиучебный класс.Или круговой список, созданный также из класса, который я написал сам.Что если на этот двусвязный список или циклический список больше не ссылаются какие-либо активные компоненты / объекты / переменные.

Знает ли GWT gc, как собирать и уничтожать эти списки?

Если нет, то чтоМеры предосторожности или шаблоны проектирования, которых я должен придерживаться, чтобы избежать накопления памяти?

1 Ответ

2 голосов
/ 16 марта 2012

Это то, что знают все фреймворки для сборки мусора - хотя я считаю, что GWT зависит от GC Javascript, а не от его собственного.

Если вы изучите этот раздел Википедии , вы поймете, почему описанная вами структура двусвязного списка будет правильно собрана сборщиком мусора - по сути, список без ссылок не будет доступен ни по одному из корней.

...