在MVVMCross应用程序中使用webview的UWP内存泄漏

时间:2017-04-11 10:07:51

标签: memory webview uwp mvvmcross unmanaged

我有一个MVVMCross UWP应用程序。 在用户访问欢迎页面并从那里进入仪表板之前,第一个视图并不显着。 这是一个问题,某处是内存泄漏,我无法找到它。 该图显示了以MB为单位的内存使用情况以及来自welcome->仪表板和返回的导航。

第一部分导航到没有嵌入式webview的仪表板,第二部分有一个webview元素,可以加载一个带有嵌入式视频的相当复杂的页面。

一些注意事项:

  • 启用webview后,使用SeperateThread标志加载代码,并设置为ContentControl的内容

  • 在卸载视图时,我明确地将ContentControl的内容设置回null,将临时值设置为null,以保存webview并手动调用GC.Collect。如果我不这样做,webview将继续在后台播放视频,直到GC启动

  • 我使用自定义演示者(添加对弹出窗口的支持,并为我的视图模型实现和调用IDispoable / Dispose(不等待GC清除订阅等)

  • 分析内存转储时,我看不到托管对象或内存中的任何更改

不使用webview时似乎存在问题(小泄漏),我也会对此进行调查,现在我更关注第二种情况

我应该在哪里继续调查发生了什么?

谢谢!

memory over several hours

编辑: 测试应用程序可用(见评论) 让它运行大约30分钟,看看问题。内存将逐渐增加,直到应用程序崩溃(可能需要几个小时)。 我有点搞砸了显示器和%的内存使用情况。只需在任务管理器中查看应用程序内存或导出带有原始数据的csv文件

Same progression in sample app

0 个答案:

没有答案