Я пытаюсь понять, что происходит в приложении, написанном на C #. Ниже приведены несколько изображений, снятых с монитора производительности. Синяя линия - это #Bytes во всех кучах. Зеленая линия - Размер кучи больших объектов. Я запускаю приложение и регистрируюсь. Приложение остается бездействующим. Первое изображение показывает, что LOH по какой-то причине увеличивается, а затем падает. Шаблон очень четкий. Что отвечает за такое поведение?
Подробнее. Я выполняю тяжелую обработку, начиная с A (см. Изображение ниже), используя базу данных Oracle через ODP.NET. После этого приложение снова остается без дела. LOH не падает. Вместо этого он продолжает расти по какой-то причине. Обратите внимание, что приложение бездействует. Он просто открыт на моем рабочем столе. Я даже не взаимодействую с ним.
Память продолжает увеличиваться (каждое изображение соответствует 1:15:00).
Через 2 с лишним часа оно внезапно уменьшается и через некоторое время снова начинает увеличиваться / уменьшаться (см. Ниже), как на первом изображении. Приложение все время бездействует. Что здесь происходит? Это утечка памяти? Я так не думаю. Мы профилировали приложение и ничего не смогли найти. Кроме того, LOH увеличивается без какой-либо активности. Нет открытой связи с базой данных Oracle. Может ли ODP.NET быть виновником?