Re: Сборка мусора. Странное поведение. Утечка.
От: Ночной Смотрящий Россия  
Дата: 14.06.20 20:57
Оценка: 7 (1)
Здравствуйте, igor-booch, Вы писали:

IB>1) Создаётся большое количество объектов КФ


Вот так делать нельзя. Объекты с финалайзерами сильно нагружают GC. Поэтому по умолчанию финалайзеры вызываются не особо активно. Правильный вариант — переделать дизайн своего приложения. Но если очень приспичило — покопай в сторону CriticalFinalizerObject и AddMemoryPressure, может поможет.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Сборка мусора. Странное поведение. Утечка.
От: nikov США http://www.linkedin.com/in/nikov
Дата: 15.06.20 05:52
Оценка:
Здравствуйте, igor-booch, Вы писали:

IB>После каждого цикла объекты КФ из памяти не выгружаются, их финалайзеры не вызываются.


Мож там какой дедлок в finalization thread?
Re[2]: Сборка мусора. Странное поведение. Утечка.
От: igor-booch Россия  
Дата: 15.06.20 08:40
Оценка:
N>Мож там какой дедлок в finalization thread?

Может и дедлок этот вызывает WPF, так сборка мусора в консольном приложении отрабатывает нормально, финализаторы вызываются
Отвечайте на это сообщение, только если у Вас хорошее настроение и в Вашем ответе планируются только конструктивные вопросы и замечания
http://rsdn.ru/Info/rules.xml
Re[5]: Сборка мусора. Странное поведение. Утечка.
От: igor-booch Россия  
Дата: 16.06.20 07:41
Оценка:
A>Через насильный
A>
GC.Collect();
A>GC.WaitForPendingFinalizers();
A>GC.Collect();

A>объекты с финализаторами должны удаляться (если ссылок на них действительно нет). Если они не удаляются, значит происходит что-то нештатное

Что например?
Отвечайте на это сообщение, только если у Вас хорошее настроение и в Вашем ответе планируются только конструктивные вопросы и замечания
http://rsdn.ru/Info/rules.xml
Re[6]: Сборка мусора. Странное поведение. Утечка.
От: alexzzzz  
Дата: 16.06.20 11:05
Оценка:
Здравствуйте, igor-booch, Вы писали:

A>>Через насильный

A>>
GC.Collect();
A>>GC.WaitForPendingFinalizers();
A>>GC.Collect();

A>>объекты с финализаторами должны удаляться (если ссылок на них действительно нет). Если они не удаляются, значит происходит что-то нештатное

IB>Что например?


— Может, профайлер врёт и ссылки есть.
— Может, финализатор нечаянно регистрирует объект на повторную финализацию и такой объект будет до бесконечности висеть в очереди на финализацию.
— Может, финализатор нечаянно добавляет ссылку на полуумерший объект кому-нибудь живому и объект воскрешается.

Может, ещё что-то, отсюда плохо видно
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.