У меня есть служба Windows C #, работающая на .NET Framework 3.5, в которой постоянно растет число дескрипторов GC (с помощью системного монитора в Windows Server 2003).
Я обеспечил правильное удаление всех ресурсов, и в моем коде нет финализаторов.
'Размер кучи больших объектов' и '# байтов во всех кучах' являются сравнительно статичными, и я вижу, что "% времени в GC" показывает, что происходит сборка мусора.
Счетчик «Private Bytes» также увеличивается.
Этот симптом приводит к тому, что «Использование памяти» в Диспетчере задач растет примерно на 35 МБ в день, что недопустимо, поскольку Сервис в основном выполняет простой запрос SELECT для Oracle 10g и использует .NET TraceSources каждые 5 секунд. Вероятно, стоит упомянуть, что TraceSource выводит в журнал событий Windows И текстовый файл с использованием объектов .NET Listeners.
Кто-нибудь знает, почему «# GC Handles» постоянно увеличивается, так как я считаю, что это связано с моим увеличением «Использование памяти»?