为什么Windows任务管理器和VMMap显示不同的内存使用情况?

为什么Windows任务管理器和VMMap显示不同的内存使用情况?,windows,memory-management,profiling,out-of-memory,vmmap,Windows,Memory Management,Profiling,Out Of Memory,Vmmap,我正在分析服务器应用程序,用Delphi7编写,运行在WindowsServer2003R2标准版SP2上。需要检查它何时耗尽内存。 任务管理器中显示的内存使用情况与SysInternals VMMap中显示的内存使用情况不同。为什么? 有什么建议吗,链接? 任务管理器:Mem用法是根据do Help设置的工作集,VM大小是提交的内存 因此,在任务管理器中,我提交了801MB的内存,但在VMMap 877中,76MB的内存有什么区别 简单回答:因为他们在测量稍微不同的东西,或者他们在不同的时间点

我正在分析服务器应用程序,用Delphi7编写,运行在WindowsServer2003R2标准版SP2上。需要检查它何时耗尽内存。 任务管理器中显示的内存使用情况与SysInternals VMMap中显示的内存使用情况不同。为什么? 有什么建议吗,链接? 任务管理器:Mem用法是根据do Help设置的工作集,VM大小是提交的内存

因此,在任务管理器中,我提交了801MB的内存,但在VMMap 877中,76MB的内存有什么区别


简单回答:因为他们在测量稍微不同的东西,或者他们在不同的时间点测量相同的东西,您何时刷新了VMMap vs Task Manager

如果您要在字节级别计算数据,任务管理器可能不是一个好的起点。您可能会发现performance monitor更有成效。VMMap对于全面了解事物也非常有用


FWIW工作集对于跟踪内存不足不是特别有用的值

我也很好奇。VMMap甚至显示了一个比task manager更大的calc.exe私有WS。您的私有数据看起来很庞大-知道是什么原因导致了我的问题吗?我建议看Mark Russinovich的《内存管理之谜》一书-他提到了不同Windows和Windows上的task manager之间的一些不兼容VMMap。