【发布时间】:2016-12-31 21:04:59
【问题描述】:
我最近开发了一个 WPF 应用程序,它重新托管了一个带有一些自定义活动的工作流设计器。 在以下情况之后,我遇到了内存问题(Out Of Memory Exception):我打开了一个包含 150 多个活动的旧工作流,并开始修改所有活动(打开一个窗口,修改一些数据,保存并关闭窗口),直到发生异常。 在这个阶段,我的应用程序有 1.4 GB 的内存使用,所以我开始寻找解决方案。 知道我在我的应用程序中使用 MVVM,我正在使用数据和命令绑定,我的视图使用在 Metro mahapps 窗口中定义的 window.close() 命令正确关闭。
我使用 ANTS Memory Profiler 查找泄漏源,并在我的应用程序内存使用量为 1.35 GB 时拍摄了内存快照。 经分析,内存中保存的实例为 System.Byte[] 类型,GC root 的路径为: System.Byte[] ==> System.IO.MemoryStream ==> System.Windows.Baml2006.SharedStream ==> System.Windows.Baml2006.BamlBinaryReader ==> System.Windows.Baml2006.Baml2006Reader ==> System.Windows。 ResourceDictionnary ==> System.Windows.ResourceDictionnary[] ==> List ==> ResourceDictionaryCollection ==> ResourceDictionary ==> System.Windows.EffectiveValueEntry[] ==> MyView
非常感谢您的帮助。谢谢。
【问题讨论】:
-
您使用的是 Autofac 还是其他 IOC 容器?
-
不@helmsb,我不是
标签: c# wpf mvvm memory-leaks workflow-foundation-4