首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OutOfMemoryException,大型私有数据

OutOfMemoryException,大型私有数据
EN

Stack Overflow用户
提问于 2010-03-31 17:32:09
回答 2查看 859关注 0票数 1

在上一系列中:

OutOfMemoryException, stack size is huge, large number of threads

我有一个消耗大量内存的.net windows服务。GC堆不大。此外,堆栈的大小也不大。大的是一种叫做私有数据的东西。我还可以在任务管理器中看到,我的应用程序消耗了很多taskmanager称为句柄的东西。我的应用程序消耗了2326个句柄。我认为这些句柄是一些占用私有数据的窗口句柄。我可以看到,这些私有数据被标记为线程环境块的块占用。那是什么?

Screenshot of my application memory usage by VMMap

Screenshot of my application memory usage by Task Manager

更新

我运行ProcessExplorer。目前,我的服务有两个实例在运行。我可以看到它们为Gen2 GC消耗了大量的虚拟内存。这看起来很可疑。另外,为GC保留的总堆大小对于两个进程也是相同的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-31 19:23:14

当新创建的对象被垃圾收集根引用而不能被收集时,似乎存在典型的内存泄漏。

解决此类问题的最有效方法是使用WinDBG + SOS和!gcroot命令。内存泄漏错误调查的示例可以在这里找到:http://blogs.msdn.com/tess/archive/2008/04/03/net-debugging-demos-lab-7-memory-leak-review.aspx

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2010-03-31 18:25:34

是的,非常耗费资源。我猜是您用ThreadStatic属性标记的变量。你的线程太多了。

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

https://stackoverflow.com/questions/2551771

复制
相关文章

相似问题

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