Я создал быструю программу, которой нужно было перебрать огромный файл журнала (пара миллионов записей) и найти различные фрагменты изнутри. Поскольку объем данных был настолько огромным, мне было любопытно посмотреть на вкладку производительности диспетчера задач Windows и посмотреть, сколько процессора и памяти используются.
Очевидно, что после того, как программа успешно получит мои результаты, загрузка ЦП резко снизится. Но после того, как я посмотрел, как мое использование памяти медленно увеличивается до нескольких гигабайт во время выполнения, оно остается прежним.
Я попытался вызвать GC.Collect () в конце моей функции, попытался установить значение null, попытался запустить программу в режиме Release (я слышал, что GC.Collect () может работать не так, как я хочу, при отладке Режим).
Использование памяти сокращается, если я закрою программу, но я не могу понять, почему я не могу очистить свое приложение в течение всего срока службы приложения. В конце концов, это одноразовое приложение, но мне просто любопытно узнать, что мне не хватает, то есть что удерживает всю эту память.
Мысли?