我的同事和我正在尝试跟踪应用程序中的内存问题,在我的研究中,我发现了一个blog entry,它讨论了默认情况下每个线程如何获得1MB堆栈。我们的应用程序恰好创建了很多线程,因此我们编写了一个快速测试程序,以确保我们确切了解发生了什么。测试应用程序(C#)只需创建300个线程,但任务管理器仍然只显示22MB内存。堆栈内存是否由任务管理器计算,或者是否正在进行其他操作?
答案 0 :(得分:1)
任务管理器不是确定内存消耗的最佳工具。相反,请下载MemProfiler或RedGate's Memory Profiler
等工具的免费试用版请勿使用任务管理器中的mem usage列进行诊断或分析。使用Perfmon计数器,特别是Private Bytes和特定的.NET计数器,它们将揭示内存泄漏等问题。