powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Освобождение памяти
11 сообщений из 11, страница 1 из 1
Освобождение памяти
    #34534497
javaheappls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день все,
получилась такая проблема.
Есть большое приложение, в котором открываются (из таблицы) разные диалоги.
Так вот, при открытии диалога, память увеличивается (всё правильно)
А вот при закрытии, память обратно не убирается.
т.е. можно наоткрывать (и потом позакрывать) кучу окон, и получится OutOfMemoryException - что не есть гут.

"Закрываю" формы по по детски :( setVisible(false)

Кто то может помочь, как освободить память?

П.С.: System.gc(); вызываю, в таск менеджере ничего не меняется (память не очишается) :(

Заранее большое спасибо.
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534509
Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закрывайте "не по-децки" :))
Код: plaintext
1.
2.
setVisible(false);
dispose();
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534538
javaheappls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но к сожелению.
как и setVisible(); так и Form.dispose(); память не очищает. продолжает рости :(
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534540
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объекты могут уничножаться gc, когда они больше не достижимы. По всей видимости еще где-то остаються ссылки на ваши диалоги , возможно в listener-ах или еще где.
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534573
javaheappls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос, а как посмотреть где висят какие инстансы классов?
и как к примеру убить листенеров? у меня их там много.
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534640
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javaheappls.
т.е. можно наоткрывать (и потом позакрывать) кучу окон, и получится OutOfMemoryException - что не есть гут.

А куча окон это сколько? Может проще просто увеличить параметры JVM? Сколько памяти у вас используется? Для swing 16 мегов маловато будет.
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534665
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё со времён дехлей было модно как бы синглетонить формы. просто не создавайте слишком много экземпляров, используйте повторно
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534706
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exppещё со времён дехлей было модно как бы синглетонить формы. просто не создавайте слишком много экземпляров, используйте повторно
отличный вариант.

Либо вот другой. Если так теоритически предположить, что у вас объекты JFrame остаються (так как они достижимы), а у каждого объекта есть поля типа List в которых милионы объектов. То можно повесить обработчик на закрытие окна, который такие поля будет чистить (null присваивать или clear вызывать).
...
Рейтинг: 0 / 0
Освобождение памяти
    #34534977
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так я не понял, OutOfMemory падает или нет? То что память отъедается постепенно и не освобождается сразу же после окончания использования - это нормально, GC начнет работать только когда хип уже будет на исходе, по-моему... какая хоть джава-то? надо будет уточнить в спеках, в мустанге, говорят очень мужрый стал GC...
...
Рейтинг: 0 / 0
Освобождение памяти
    #34535232
Vurn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цикличность работы gc была исправлена еще в 1.4 Jave (по крайней мере, если не используются финализаторы)
А по сути, я борюсь с ростом хипа путем минимизации количества ссылочных переменных в объектах, "доставая" их через методы либо пиша в локальные в методах.
Таким образом я сильно облегчаю возможность gc для сбора мусора.
...
Рейтинг: 0 / 0
Освобождение памяти
    #34535821
javaheappls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо, решилось SingleTone всё.
Намного меньше стало есть памяти.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Освобождение памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]