Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечки памяти в Java, причины их возникновения 
:(
    Опции темы
saneea
Дата 7.11.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Я сам на Java не программирую. Но считал, что из-за сборщика мусора в ней нет утечек памяти. И вот теперь мне сказали, что утечки памяти в Java всё-таки возникают, причём только по одной причине (но не сказали почему). Вот собственно и вопрос: откуда утечки памяти в Java?
PM MAIL   Вверх
powerOn
Дата 7.11.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Висячие ссылки. Объект не будет удален сборщиком мусора пока не него есть ссылка у другого, "живого" объекта.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Skynin
Дата 7.11.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 6
Всего: 10



+ к powerOn
возникают при неаккуратной работе с слушателями - считаем что объект уже недоступен, но пока его слушатель находится в списке у другого объекта - сборщик мусора естественно освобождать память не будет.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
saneea
Дата 7.11.2009, 18:01 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Короче, как я понял, такое происходит если появляются циклические ссылки. Спасибо!
PM MAIL   Вверх
Skynin
Дата 7.11.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 6
Всего: 10



Напрочь неверно поняли. 

GC у Java "глубоко все равно" на циклические ссылки.
Поэтому просьба на "такое происходит если появляются циклические ссылки." не ссылаться на меня или кого-то на форуме.
Я уже разъяснял про циклические ссылки на этом форуме:
Соберет ли GC такие объекты

Вольный перевод с комментариями Plug memory leaks in enterprise Java applications
Утечки памяти бывают 4ех видов:
1. Неизвестные или нежелательные ссылки на объект.  Обычно ссылка попадает в коллекцию долгоживущего объекта, а убрать ее забывают, или не знают что нужно убрать. Часто густо - забывчивость отцепить слушателя, который содержит ссылку на объект-владелец. Или кривоватая фабрика, которой нужно сообщать что этот объект уже не нужен.
2. Долго-живущие статические объекты. Ссылка статическая, и хотя объект уже не нужен, если не очистили будет жить до конца жизнедеятельности программы. Обычно такая ссылка упрятана где-то в глубинах фабрики и прочего.
3. Ошибки освобождения нативных ресурсов - при использовании JNA, JNI
4. Глюки в библиотеках AWT, Swing, SWT

Я бы добавил 5ый класс, который встречается в серверах приложений - не освобождающаяся Perm зона, которая забивается кодом не нужных уже сервлетов. Правда он не связан с собственно кодом на Java, а скорей с неадекватной настройкой запуска JVM




Это сообщение отредактировал(а) Skynin - 7.11.2009, 19:45
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.