powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Утекает память
14 сообщений из 14, страница 1 из 1
Утекает память
    #37732565
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Помогите пожалуйста найти утечку памяти. Проблема в следующем. Есть класс внутри которого в потоке что-то выполняется. Программа в результате своей работы создает несколько объектов этого класса и заносит каждый объект в synchronizedList, так же в конструктор этого объекта передается ссылка на этот List далее когда объект отработал, то внутри себя он вызывает функцию которая вызывает удаление себя же из этого листа. Но как я понимаю этого не достаточно, чтобы GC удалял отработавшие объекты из памяти? Получается что при старте программы с наличием к примеру 1000 работающих объектов в List-e к примеру программа занимает 100МБ памяти... Через некоторое время программа при наличии уже 500 объектов в List-e занимает примерно столько же памяти. Может я что-то не так делаю? Заранее огромное спасибо за советы.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
        //Удаление сессий из списка
	public void removeSession() {
		
		if (aliveTimer != null) {
			aliveTimer.cancel();
			aliveTimer = null;
		}
		
		dataAnalyzer=null;
		packet=null;
		updateSender=null;
		sessionThread=null;
		crypt=null;

		synchronized(sessions) {
			sessions.remove(Session.this);
		}
	}
...
Рейтинг: 0 / 0
Утекает память
    #37733634
OOsalivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Как вы поняли что утечка памяти связанна с листом? GC удаляет все объекты на которых нет ссылок
...
Рейтинг: 0 / 0
Утекает память
    #37739506
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OOsalivan,

Потому что при уменьшении клиентов память не освобождается. Хотя все потоки и т.д которые содержит объект помещенный в List при удалении останавливаются.
...
Рейтинг: 0 / 0
Утекает память
    #37739508
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OOsalivanGorloPavel,

Как вы поняли что утечка памяти связанна с листом? GC удаляет все объекты на которых нет ссылоквот только когда удаляет. процесс этот не детерменирован.
...
Рейтинг: 0 / 0
Утекает память
    #37739510
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
емнип, виртуальная машина жавы - не умеет отдавать пмять операционке. елси 100 метров попросила - то назад их не вернет, но зато, ты тепрь можешь опять создать тоже кол-во объектов, которые были удалены, а кол-во занимаемой памяти не вырастет.
...
Рейтинг: 0 / 0
Утекает память
    #37739511
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,
Ерунда какая-то...
...
Рейтинг: 0 / 0
Утекает память
    #37739516
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavelZyK_BotaN,
Ерунда какая-то...
То, что не умеет, возможно ерунда. Но что, не будет торопиться, если памяти вполне достаточно - это точно.
...
Рейтинг: 0 / 0
Утекает память
    #37739517
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это даже не только явы касается, а большинства менеджеров памяти.
...
Рейтинг: 0 / 0
Утекает память
    #37739519
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon,

В том то и дело.. Что новые клиенты не могут подключиться. Out of memory! Хотя их было сначала грубо говоря 1000 потом стало 500 а потом 501 подключается и все Out of memory!
...
Рейтинг: 0 / 0
Утекает память
    #37739522
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если oom, тогда сначала выясни виновного с помощью VisualVM
...
Рейтинг: 0 / 0
Утекает память
    #37739523
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon,

У меня только консоль Linux... Может как-то еще?
...
Рейтинг: 0 / 0
Утекает память
    #37739530
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavelZyK_BotaN,
Ерунда какая-то...возможно, прочел это в статье - сравнения джавы с эрлангом.
...
Рейтинг: 0 / 0
Утекает память
    #37739562
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNGorloPavelZyK_BotaN,
Ерунда какая-то...возможно, прочел это в статье - сравнения джавы с эрлангом.
Ну на RSDN (древний топик 2005-ого) говорят, что не освобождает виртуальную память.

GorloPavel
Ну а если принудительно периодически вызывать gc() - результат тот же?
...
Рейтинг: 0 / 0
Утекает память
    #37740581
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть утилитка, называется толи jmap то ли jhat то ли что-то такое - скидывает дамп памяти вируальной машины. вот вы скиньте дамп и посмотрите чего там творится в нем. И дальше по результатам принимайте решение.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Утекает память
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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