Фантастический обзор управления памятью - презентация Гранта Скиннера:
http://gskinner.com/talks/resource-management/
В целом, я никогда не null
сами объекты, но обнуляю объекты, ссылающиеся на них (есть тонкое, но важное отличие). Все ссылки должны быть уничтожены, а также прослушиватели событий и т. Д.
При добавлении прослушивателей событий установите привычку для прослушивателя равным weak
.
o.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
В этом нет недостатка, и это означает, что если вы обнулите все ссылки на ваш объект o
, но к нему все еще подключены слушатели, они удалят себя, и объект все равно можно будет пометить как gc'ed. Вы все равно должны сами справляться с удалением слушателей.
"не ленись - убирайся после
сам! "
Наконец, вы можете использовать класс Janitor, чтобы помочь контролировать / очищать ваши ресурсы:
http://gskinner.com/libraries/