WP8大容量内存泄漏

时间:2015-01-08 19:41:42

标签: c# windows-phone-8 memory memory-leaks

我在一个完全开发的应用程序中遇到内存泄漏的困难时期。 C#与MVVM Light 5。 我花了整整一周的时间学习如何使用内存分析器,阅读常见的内存泄漏问题等等。我已经把这个问题的最小时间减少了25个小时。我仔细清除所有事件处理程序,甚至在BackNavigation之后以及检测到循环导航时将每个页面的DataContext和LayoutRoot置空(我在App.cs中存储最后一个运行的页面实例,当该页面的另一个实例时即将创建,我检查是否已经有一个实例,如果有,我清除它。)

我已经筋疲力尽了,我不知道从哪里开始。

以下是重复导航2页之后的内存分析屏幕截图的链接。 由于某种原因,每个页面的实例都没有被释放,但是它们被减少到仅仅是字节。

enter image description here

正如您所看到的,我保留的分配与开始和结束时保留的视觉效果之间的差异非常小(总共约30mb)。

然而在图中,我看到差不多100mb。

这让我非常疯狂,我认为底层平台在管理这个方面会做得更好。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  

我仔细清除所有事件处理程序,甚至在BackNavigation之后清空每个页面的DataContext和LayoutRoot

我建议建立一个系统来重新使用虚拟机,并且只在真正需要时才获取新数据。我在一个专业的地图应用程序,目前在WP商店,我们只根据需要创建项目,从未创建过两次VM。