Мы находимся в процессе отладки некоторых проблем с памятью. Мы смотрели 5 экземпляров одного и того же приложения. Мы остановились 3. Размер кучи Gen2 изменился с 5 до почти 10 м, а размеры кучи Gen0 и Gen1 изменились незначительно.
Это полная противоположность того, что я ожидал. Я ожидал, что он уменьшится в размере, и никогда не ожидал, что он увеличится.
Что здесь происходит?
Подробнее:
Это консольные приложения, один и тот же физический .exe, разные командные строки, которые выполняют простую работу «чтение файла, вставка в базу данных» (или наоборот).
Мы столкнулись с проблемами памяти и не смогли найти ее, поэтому в отчаянии добавляли GC.Collect после каждого запуска пакета. Выполнение операции облегчило использование памяти, но не дает понять, в чем заключается основная проблема.
@S.Skov, размеры кучи GC одинаковы для каждого экземпляра. При закрытии некоторых приложений каждое открытое приложение имело одинаковые размеры кучи. Это заставляет нас действовать в предположении, что GC был распространен среди всех экземпляров одной и той же программы. Мы используем Process Explorer из sysinternals для измерения размера кучи.
tl; dr версия: Использование памяти вышло из-под контроля. GC.Collect () «исправляет» симптом, но не проблему. Кроме того, размеры кучи GC всегда одинаковы для всех экземпляров одного и того же приложения.
извинения: я также, возможно, плохо справляюсь с тем, чтобы эффективно транслировать обсуждения нашей команды и махать рукой на что-то значимое в Интернете.