【发布时间】:2010-03-31 09:32:09
【问题描述】:
在之前的系列中:
OutOfMemoryException, stack size is huge, large number of threads
我有一个消耗大量内存的 .net windows 服务。 GC堆不大。堆栈大小也不大。重要的是所谓的私人数据。我还可以在任务管理器中看到我的应用程序消耗了很多任务管理器调用句柄的东西。我的应用程序消耗 2326 个句柄。我相信这些句柄是一些占用私有数据的窗口句柄。我可以看到这个私有数据被 标记为线程环境块的块。那是什么?
Screenshot of my application memory usage by VMMap
Screenshot of my application memory usage by Task Manager
更新
我运行 ProcessExplorer。目前我的服务有两个实例正在运行。 我可以看到它们为 Gen2 GC 消耗了大量的虚拟内存。这看起来很可疑。 为 GC Heap 保留的总大小对于两个进程也是相同的。
【问题讨论】:
-
Process Explorer 可以显示这些句柄是什么(以及许多其他有用的东西)。你可以在这里找到它:technet.microsoft.com/en-us/sysinternals/bb896653.aspx。选择视图 -> 下窗格视图 -> 句柄。
-
您好!你设法解决了这个问题吗?我有一个类似的(高私有数据内存使用率和 OOM)。
标签: .net memory-leaks memory-management taskmanager window-handles