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

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

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

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

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

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

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


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