即使我希望它保持在一个相当静态的水平,我们的网站的内存使用量增长和增长. (我们有少量数据存储在状态).
想知道问题是什么,我已经运行了一个System.GC.Collect();几次,拿一个内存转储,然后将这个内存转储加载到WinDbg中.
当我做一个DumpHeap -Stat,我得到一个非常大的数字在特定类型挂在内存中.
0000064280580b40 713471 79908752 PaymentOption
所以,做一个DumpHeap -MT这种类型,我得到一堆对象引用.选择一个随机数的这些,我做一个gcroot,命令回来报告,没有引用它.
对我来说,这正是GC应该收集这些物品的原因,但由于某些原因,它们已经被遗弃了.
有人可以就可能发生的情况提供解释吗?
解决方法
在作者网站的示例中,!refs被用于对象,输出如下所示:
0:000> !refs 0000000080000db8
由0000000080000db8(System.Threading.Mutex)引用的对象:
0000000080000ef0 32 Microsoft.Win32.SafeHandles.SafeWaitHandle
引用0000000080000db8(System.Threading.Mutex)的对象:
0000000080000e08 72 System.Threading.Mutex c_DisplayClass3
0000000080000e50 64 System.Runtime.CompilerServices.RuntimeHelpers CleanupCode
希望这可以帮助.雅.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。