Как я обнаружил где-то в сети, следующие пункты могут привести к утечке памяти. Например:
- Объекты ResultSets и Statement
- DataLists
- Коллекция
- Статические переменные и классы
- Одиночки
- HttpSession и HttpRequest
Управляемые bean-компоненты в моем JSF-приложении в основном @ViewScoped
, поэтому я подумал, что после выхода из представления у GC достаточно информации для освобождения списков данных, объектов и т. Но это не имеет или не полностью:
Я просто закрываю сеансы гибернации вручную (используя finally), но это все. Остальное, что я ожидал от GC.
Не могли бы вы сказать мне,
- как найти, какие конкретные объекты остаются в памяти?
- как освободить объекты после выхода из вида вручную? что-то вроде деструктора ..?
- Каковы лучшие практики в борьбе с утечками памяти?