Недавно я разработал приложение WPF, в котором повторно размещен конструктор Workflow с некоторыми пользовательскими действиями. Я столкнулся с проблемой памяти (Out Of Memory Exception) после следующего сценария: я открыл старый рабочий процесс с более чем 150 действиями, и я начал их модифицировать (открыть окно, изменить некоторые данные, сохранить и закрыть окно) до тех пор, пока произошло исключение. На этом этапе у моего приложения было 1,4 ГБ использования памяти, поэтому я начал искать решение. Зная, что я использую MVVM в своем приложении, я использую привязку данных и команд, мои представления правильно закрыты с помощью команды window.close(), определенной в окнах metro mahapps.WPF WF4.5 Проблемы с памятью регенерированного конструктора
Я использовал ANTS Memory Profiler, чтобы найти источник утечки, и я взял снимок памяти, когда использование памяти приложения было 1,35 ГБ. После анализа экземпляры, хранящиеся в памяти, являются типами System.Byte [], а путь к корню GC равен: System.Byte [] ==> System.IO.MemoryStream ==> System.Windows.Baml2006.SharedStream = => System.Windows.Baml2006.BamlBinaryReader ==> System.Windows.Baml2006.Baml2006Reader ==> System.Windows.ResourceDictionnary ==> System.Windows.ResourceDictionnary [] ==> Список ==> ResourceDictionaryCollection ==> ResourceDictionary = => System.Windows.EffectiveValueEntry [] ==> MyView
Я очень ценю вашу помощь. Благодарю.
Вы используете Autofac или другой контейнер IOC? – helmsb
Нет @helmsb, я не – Ouuss