Memory MVVMCross应用中使用webview的UWP内存泄漏

Memory MVVMCross应用中使用webview的UWP内存泄漏,memory,webview,uwp,mvvmcross,unmanaged,Memory,Webview,Uwp,Mvvmcross,Unmanaged,我有一个MVVMCross UWP应用程序。 在用户进入欢迎页面并进入仪表板之前,第一个视图并不显著。 这里有个问题,某个地方有内存泄漏,我找不到。 该图以MB为单位显示内存使用情况,以及从欢迎->仪表板和返回的导航 第一部分是导航到没有嵌入式webview的仪表板,第二部分有一个webview元素,它加载一个包含嵌入式视频的相当复杂的页面 一些注意事项: 启用后,webview将使用SeparateThread标志加载到代码隐藏中,并设置为ContentControl的内容 卸载视图时,我显

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

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

一些注意事项:

  • 启用后,webview将使用SeparateThread标志加载到代码隐藏中,并设置为ContentControl的内容

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

  • 我使用自定义演示器(添加对弹出窗口的支持,并为我的viewmodels实现和调用IDisTable/Dispose(不必等待GC清除订阅等)

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

当不使用webview时,似乎出现了一个问题(一个小漏洞),我也将对此进行研究,现在我更关心第二种情况

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

谢谢大家!

编辑: 可用的测试应用程序(见备注) 只要让它运行30分钟左右就可以看到问题。内存将稳步增加,直到应用程序崩溃(可能需要几个小时)。 我有点搞砸了显示和%的内存使用率。只需在任务管理器中查看应用程序内存或导出包含原始数据的csv文件


您能否共享一个可以重现您的问题的解决方案?如果没有任何代码,很难找到问题所在。好的,我会这样做。我想创建一个解决方案,以确定是MVVMCross还是UWP本身造成了问题。我们现在通过定期清除webview缓存来解决这个问题,这大大减少了非托管内存的使用。但它仍然会随着时间的推移而增加。测试应用程序现在可用:只需让它运行约30分钟,问题就会变得非常明显。我可以看到与主应用程序相同的内存增加。您也可以将数据导出为csv文件,以在excel中绘制