Как удалять объекты???
От: Kum  
Дата: 09.06.05 05:53
Оценка:
Есть у меня некоторый класс, который постоянно слушает поток.
Заметил такую штуку — размер употребляемой памяти растет постоянно.
Вроде все объекты объявлены локально (в функции и такие как string, byte и т.д.).
После работы с ними я делаю им
= nill;
GC.Collect();


Но память как росла, так и растет. Оставил на сутки, так к утру прога занимала 300 мег.
Re: Как удалять объекты???
От: Mab Россия http://shade.msu.ru/~mab
Дата: 09.06.05 05:58
Оценка:
Kum>
Kum>GC.Collect();
Kum>

Этого не стоит делать.

Лучше взять MemoryProfiler и посмотреть, что происходит в куче.
Re: Как удалять объекты???
От: xexe2  
Дата: 09.06.05 06:42
Оценка:
Здравствуйте, Kum, Вы писали:

Kum>Есть у меня некоторый класс, который постоянно слушает поток.

Kum>Заметил такую штуку — размер употребляемой памяти растет постоянно.
Kum>Вроде все объекты объявлены локально (в функции и такие как string, byte и т.д.).
Kum>После работы с ними я делаю им
Kum>
Kum>= nill;
Kum>GC.Collect();
Kum>


Kum>Но память как росла, так и растет. Оставил на сутки, так к утру прога занимала 300 мег.



попробуй не делать null а сразу вызывать GC.SuppressFinalize(obj);
ну вроде и все:)
Re[2]: Как удалять объекты???
От: DanNsk  
Дата: 09.06.05 08:48
Оценка:
X>попробуй не делать null а сразу вызывать GC.SuppressFinalize(obj);
а смысл ...у обьекта при сборе мусора не будет вызван деструктор ..чем ему это поможет ?
Re: Как удалять объекты???
От: mihailik Украина  
Дата: 10.06.05 11:51
Оценка:
> После работы с ними я делаю им
> = nill;
> GC.Collect();

Во-первых, GC.Collect вызывать нельзя.
Во-вторых, объекты нельзя удалять, нет такого способа.
В-третьих, если программа не тормозит, то на память внимания не обращай.
И в-четвёртых, что твоя программа делает?

Ми.
Posted via RSDN NNTP Server 1.9
Re[3]: Как удалять объекты???
От: Аноним  
Дата: 10.06.05 14:56
Оценка:
Здравствуйте, DanNsk, Вы писали:

X>>попробуй не делать null а сразу вызывать GC.SuppressFinalize(obj);

DN>а смысл ...у обьекта при сборе мусора не будет вызван деструктор ..чем ему это поможет ?

Смысл в следующем: в одном из деструкторов у тебя возможна ошибка, приводящая к вечному циклу или другого рода подвисанию потока сборщика мусора. Сделав как тебе сказали и увидев, что память не растёт, ты поймёшь, не подвис ли где GC у тебя.

Да, а ты не используешь сокеты случайно?
Re[4]: Как удалять объекты???
От: Kum  
Дата: 13.06.05 09:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Да, а ты не используешь сокеты случайно?


Использую
Re[4]: Как удалять объекты???
От: Nickolay Ch  
Дата: 13.06.05 11:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, DanNsk, Вы писали:


X>>>попробуй не делать null а сразу вызывать GC.SuppressFinalize(obj);

DN>>а смысл ...у обьекта при сборе мусора не будет вызван деструктор ..чем ему это поможет ?

А>Смысл в следующем: в одном из деструкторов у тебя возможна ошибка, приводящая к вечному циклу или другого рода подвисанию потока сборщика мусора. Сделав как тебе сказали и увидев, что память не растёт, ты поймёшь, не подвис ли где GC у тебя.


А>Да, а ты не используешь сокеты случайно?


А какое это имеет значение?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.