ScrollViewer中的图像导致内存泄漏

时间:2015-10-13 17:35:49

标签: c# .net xaml windows-store-apps win-universal-app

Image中有一个ScrollViewer我正在不时更改BitmapImage这是图片的来源。我发现应用程序的内存使用量超过2GB,即使图像总共只有100MB! (我不知道超过2GB可以分配给一个应用程序)并且有时它会崩溃。内存使用 每隔一段时间变小,但速度不够快。我的假设(由于缺少更好的,欢迎任何其他想法)是ScrollViewer缓存图像,即使在BitmapImage被另一个替换后也不会释放缓存。

有没有办法告诉ScrollViewer不要缓存图像?

此外,我如何查看内存的去向?我正在使用VS2015,所有诊断工具都显示我使用的总内存。

1 个答案:

答案 0 :(得分:3)

VisualStudio 2013将允许您profile memory usage。或者,您可以使用PerfView(由Microsoft提供)。两者都会告诉你哪些物体正在吞噬你的记忆。我已成功使用这两个选项来确定与您类似的问题的根本原因。还有一些第三方工具可以做同样的事情。

或许对this other question的回复很有帮助。在将BitmapImages作为ImageScrollViewer的来源之前,您似乎需要冻结{{1}}。

我会将此作为评论发布,因为我实际上没有解决方案,但我没有足够的代表。