Я использую log4nets MemoryAppender
для регистрации отладочных сообщений и по какой-то причине даже при очистке событий память не освобождается.Это большая проблема даже при запуске некоторого примера кода, так как использование памяти увеличивается до 1 ГБ +.
Я пытался заставить GC собирать, и это снижает использование на ~ 2 МБ после очистки событий, но затемэто поднимается снова позже.Очистка событий и создание нового объекта appender совсем не помогают.При проверке окна диагностики я получаю изображение ниже.Кто-нибудь знает, что это за утечка?Почему он просто продолжает заполняться?
Создание приложения:
appender = new MemoryAppender();
LoggerMatchFilter f = new LoggerMatchFilter{ LoggerToMatch = "MemoryLogger" };
appender.AddFilter(f);
appender.ActivateOptions();
GetRootLogger().AddAppender(appender);
Logger logger = (Logger)log.Logger;
logger.AddAppender(appender);
Очистка событий (выполненных в переопределенном методе Append):
if(m_eventsList.Count > 200)
{
m_eventsList.Clear();
GC.Collect();
GC.WaitForPendingFinalizers();
}
Снимок диагностики