首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户"Server“垃圾收集时,我为什么会出现内存泄漏?

当用户"Server“垃圾收集时,我为什么会出现内存泄漏?
EN

Stack Overflow用户
提问于 2010-02-23 22:56:41
回答 1查看 332关注 0票数 7

这是我的情况。我想解释一下为什么会发生这种事。我正在阅读GC 这里,但我仍然不明白。

工作站案例:当我运行工作站垃圾收集时,我的应用程序将占用大约180 my的私有字节和大约70 my的“所有堆中的.NET CLR内存#字节”。记忆持续稳定了几个小时。生活是美好的。

服务器案例:当我运行服务器垃圾收集时,我的应用程序将占用大约500 my的私有字节,但在“所有堆中的.NET CLR内存#字节”中仍仅使用大约70 my。对!DumpHeap -stat输出和!GCRoot的分析显示了许多没有根的对象。而且,我的私有字节在几个小时内显著增加,但是.NET字节保持不变。我的应用程序确实使用了大量的非托管代码,所以考虑到私有字节和.NET字节的不同,我认为这是相关的。但为什么我的生活在服务器的情况下如此糟糕?

对于进一步的调查,GC有什么智慧或指导?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-23 23:04:17

“服务器垃圾收集”是为高吞吐量应用程序设计的,主要是在集群服务器上。

服务器GC开销很大,发生时会挂起正在运行的线程。因此,它需要更大的内存压力才能真正触发--如果您仍然有空闲的内存,那么如果垃圾收集器还没有感觉到需要检查和清理,就不要感到惊讶。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2322404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档