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