Проблема утечки памяти в WPF. Память стабильна с небольшими документами, но увеличивается до исключения OOM с большими документами.
Справочная информация:
Мы разработали приложение WPF для управления динамическим дисплеем. Существует компонент «Дизайн», в котором пользователь размещает отображаемый документ, и компонент «Отображение документа».
Элементы на дисплее могут содержать текст и / или графику. Каждый элемент может циклически перемещаться по разным строкам или изображениям с использованием различных переходов - прокрутка, затухание, мигание и т. Д.
Проблема:
Проблема в элементе, отображающем графику, с перекрестным затуханием между различными графиками. Выцветание достигается путем анимации свойства непрозрачности двух элементов управления изображениями WPF (один для входящего, другой для исходящего).
Все работает нормально, пока общий объем памяти приложения во время работы находится ниже (пока точно не определенного) порога. Когда общий объем отпечатка увеличивается (например, путем добавления другого графического элемента с большим графиком), тогда общий объем памяти, используемой приложением, начинает расти, и я в конечном итоге получаю исключение OOM. Сама по себе большая графика или сама по себе затухающая графика не имеют проблемы с утечкой памяти, а имеют только комбинацию.
Кто-нибудь еще видел подобное поведение? Есть идеи для решения? Я предполагаю, что проблема связана с фрагментацией Large Object Heap, но это только предположение.
К сожалению, у меня нет примера кода для публикации, так как это часть более крупного решения. Я попытаюсь создать пример приложения, иллюстрирующего это поведение, и обновлю свой пост.