.net C 什么可以解释托管堆上超过5,000,000个System.WeakReference实例?
|
我一直在对生产ASP.NET Web应用程序运行负载测试,并且看到在堆上创建了大量的System.WeakReferences.在负载下大约15分钟内,托管堆内存大约增加到3GB,我有大约5,000,000个对System.WeakReference的引用.执行所有代的强制垃圾收集不会释放这些引用. 我已经看过关于__ENCLIST辅助类的帖子,如果在调试中编译程序集,可以为所有创建的对象创建WeakReferences,起初我认为这是问题,但已经验证所有已部署的程序集都是在发行版中构建的. 我一直在使用WinDbg来调试这个过程,这里是最后几行!dumpheap -stat 000007fef788e0c0 39253 18510000 System.Collections.Hashtable+bucket[] 00000000021bf120 94336 151023192 Free 000007fef7887e98 5959 189838752 System.Char[] 000007fef7874390 517429 589750224 System.Object[] 000007fef78865a0 1531190 1230824112 System.String 000007fef787dab8 51723338 1655146816 System.WeakReference正如您所看到的,这些System.WeakReferences消耗了大约1.5GB的内存. 有谁知道什么可以创建所有这些WeakReferences? 解决方法 事实证明,由于动态创建大量System.Diagnostics.TraceSwitch实例,我有一个System.WeakReference泄漏,内部TraceSource / TraceSwitch将WeakReference分配给新的TraceSource / TraceSwitch并将WeakReference放入列表中.尽管WeakReference允许对TraceSource / TraceSwitch进行垃圾回收,但WeakReference本身永远不会被释放,从而导致内存泄漏.在这里可以找到更多信息 http://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource(VS.80).aspx (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc C ASP.net身份在删除外部帐户后停止分发外部Co
- asp.net – 在调用异步方法时不使用等待来防止死锁
- asp.net-mvc – ASP.NET MVC:部分知道它是否是从另一个页面
- 看美剧英文字幕学英语的利器深蓝英文字幕助手简介
- asp.net-mvc – UpdateModel前缀 – ASP.NET MVC
- .net – DNU发布 – 来自MSBuild的no-source
- ASP.NET微信公众号用于给指定OpenId用户发送红包
- [你必须知道的.NET] 开篇有益
- ASP.NET – 可以从服务器代码触发回发吗?
- asp.net – 有人有一种方法来保持页面呈现一旦一个人已退出
- asp.net文件上传功能(单文件,多文件,自定义生成
- .net – 扩展自定义成员资格提供程序
- 充分利用ASP.NET的三种缓存提高站点性能的注意方
- asp.net – 我可以通过编程方式禁用更新面板吗?
- asp.net – 如何将下拉列表添加为gridview项
- 我如何让Fiddler捕获我的MVC应用程序向我的ASP.N
- 认证 – WebApi ActionFilterAttribute,HttpActi
- asp.net – (客户端)禁用提交按钮的最佳方法是什
- asp.net-mvc-3 – 如何避免使用MVC3 FileContent
- asp.net-mvc – 有没有办法重命名RequestVerific
- asp.net-mvc C 已经使用相同的参数类型定义
- asp.net-mvc C ASP.NET MVC中的WebApi [Fro
- asp.net-mvc C MVC应用程序中的随机数生成
- asp.net-core C 如何使用ASP.NET注册OData
- asp.net C MVC4 C ContextDependentView C
- asp.net-mvc-3 C 如何从ASP.NET MVC#输出中
- asp.net-mvc C 使用AD的ASP.NET MVC表单Aut
- ASP.Net C AJAX UpdatePanel中的Javascript
- asp.net C 适用于多个用户的EWS通知中心
- asp.net-mvc C 未在ELMAH中记录的错误
