【发布时间】:2020-04-03 14:55:25
【问题描述】:
问题:
加载图片后WebView不释放内存。
如果所有 WebView 实例都被销毁几秒钟,内存似乎确实被释放了。我们从 XAML 树中删除并清除了代码中的所有引用。 (我们在调试器中检查了当时所有实例都已释放。)
此解决方案存在问题,因为 Web 视图必须停止一段时间才能启动内存清除,并且对于我们的用例来说是不可接受的。
如何重现:
制作 UWP C# 应用或 C++ UWP 应用 -> 添加 WebView -> 使用随机 URL 加载大图像 -> 内存不断增长。
我们只有一个活动的 WebView,并且我们在其中多次加载一个大图像。 (我们随机化部分图片网址来模拟不同的广告加载。)
内存不断增长,就好像图像永远不会被释放一样。 我们尝试了什么:
- 使用 WebView.ClearTemporaryWebDataAsync() 清除缓存,但它没有做任何事情。
- 手动触发 GC。
注意事项:
- 我们使用“WebView(WebViewExecutionMode.SeparateThread)”初始化 webview。 (其他执行模式似乎没有帮助)。
- 我们不使用 WebViewBrush。
【问题讨论】: