Здравствуйте, igor-booch, Вы писали:
IB>1) Создаётся большое количество объектов КФ
Вот так делать нельзя. Объекты с финалайзерами сильно нагружают GC. Поэтому по умолчанию финалайзеры вызываются не особо активно. Правильный вариант — переделать дизайн своего приложения. Но если очень приспичило — покопай в сторону CriticalFinalizerObject и AddMemoryPressure, может поможет.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
A>Через насильный
A>GC.Collect();
A>GC.WaitForPendingFinalizers();
A>GC.Collect();
A>объекты с финализаторами должны удаляться (если ссылок на них действительно нет). Если они не удаляются, значит происходит что-то нештатное
Что например?
Здравствуйте, igor-booch, Вы писали:
A>>Через насильный
A>>GC.Collect();
A>>GC.WaitForPendingFinalizers();
A>>GC.Collect();
A>>объекты с финализаторами должны удаляться (если ссылок на них действительно нет). Если они не удаляются, значит происходит что-то нештатное
IB>Что например?
— Может, профайлер врёт и ссылки есть.
— Может, финализатор нечаянно регистрирует объект на повторную финализацию и такой объект будет до бесконечности висеть в очереди на финализацию.
— Может, финализатор нечаянно добавляет ссылку на полуумерший объект кому-нибудь живому и объект воскрешается.
Может, ещё что-то, отсюда плохо видно