我有一个相当简单的Silverlight应用程序,最近我们一直在使用该应用程序的用户报告在使用几个小时后崩溃(4+)。我们开始深入研究应用程序,并注意到应用程序使用的未管理的内存部分启动非常高,并且继续不受限制地增长。其他堆似乎管理得很好。我做了很多研究,甚至从我的应用程序中删除所有图像,并且未管理的内存继续增长。
我只是在这一点上感到困惑的是,我的应用程序中所有未管理的内存到底是什么,以及我可以做些什么。这是初始加载后我的应用程序的快照,因为您可以看到它已经使用了超过100MB的未管理内存空间。我只是在寻找任何有关未管理内存中的对象以及如何减少应用程序正在使用的未管理内存量的指导。谢谢!
我使用.NET Memory Profiler拍摄了另外一两个快照,看起来Kernel-HeapMemory是最大的块。不知道这有多大帮助,但我想我还是会发布它。