在之前的系列中:
OutOfMemoryException,堆栈大小巨大,线程数多
我有一个消耗大量内存的 .net windows 服务。GC堆不大。堆栈大小也不大。重要的是所谓的私人数据。我还可以在任务管理器中看到我的应用程序消耗了很多任务管理器调用句柄的东西。我的应用程序消耗 2326 个句柄。我相信这些句柄是一些占用私有数据的窗口句柄。我可以看到这个私有数据被标记为Thread Environment Block的块占用。那是什么?
更新
我运行 ProcessExplorer。目前我的服务有两个实例正在运行。我可以看到它们为 Gen2 GC 消耗了大量的虚拟内存。这看起来很可疑。为 GC Heap 保留的总大小对于两个进程也是相同的。