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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уничтожение обьектом самого себя 
:(
    Опции темы
alexdrob
Дата 21.2.2009, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть такой код

Код

public class Main {

    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(9002);
            while (true){
                new NetSocket(server.accept());
            }
        }catch(ArrayIndexOutOfBoundsException ae){
            System.err.println("Usage: Server port");
            System.exit(0);
        }catch(IOException e){
            System.out.println(e);
        }
    }
}


и такой клас

Код

class NetSocket extends Thread
        private Socket sock;
        private InputStream is;
        private OutputStream os;
        private boolean active;
        private byte[] cIP;
......

public void run(){
        while(active == true){
          ........
         }
}


после подключения клиента памят занимаемая приложением увеличиваеться, а после отключения (active = false) уменьшаеться но не на столько на сколько увеличена. как удалить обьект полностью?
PM MAIL   Вверх
powerOn
Дата 22.2.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



На самом деле существует множество других причин, не связанных с удалением этого объекта, по которым память не вернулась в прежнее состояние. 


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

PM MAIL   Вверх
Vermut
Дата 23.2.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ваша проблема описана тут.
Устранение утечек памяти посредством слабых ссылок

Похоже ссылки на каждый NetSocket вы заносите в какую то структуру (например для периодического мониторинга) и забываете удалить.
PM MAIL   Вверх
alexdrob
Дата 27.2.2009, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в том то и дело что я не куда не заношу

Код

while (true){
        new NetSocket(server.accept());
}

PM MAIL   Вверх
math64
Дата 27.2.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



а нити из NetSocket завершаются? Пока они не завершатся, память не освободится.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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