Windows任务管理器中的MMF(内存映射文件)内存在哪里?

时间:2010-01-22 02:22:58

标签: windows memory taskmanager

两个应用程序通过MMF共享内存。 一个创建MMF(大约1GB),B按名称打开该MMF文件。 当我看到Windows任务管理器时,A有1GB内存。 但是,经过几次关闭并再次推出B app, (或者1天后?我不确定如何复制) Windows任务管理器中的A内存低于1K字节。

我的猜测是, 也许是因为A app在创建MMF后没有做任何事情, 所以,Windows认为MMF属于B app。 (猜猜)。

我的操作系统是Windows 2003 Enterprise x64,SP2。

有谁知道原因? 提前谢谢。

3 个答案:

答案 0 :(得分:1)

内存映射文件仍然是Virtual Address Space的一部分,使用perfmon来获取可靠的计数器,而不是任务管理器,随每个Windows版本而变化。 Process |的Perfmon计数器虚拟字节(总VAS)是最有趣的。

答案 1 :(得分:0)

我的理解是虚拟地址空间中保留了1GB,但实际上只为触摸的页面分配了内存。内存映射文件与虚拟内存API并行实现,并且都基于NT虚拟内存管理器。有关说明,请参阅此article and diagram

您是否用数据填充整个文件,或者您只分配了1GB?

更新:

您在任务管理器中查看了哪一列?

默认内存(私有工作)表示物理分配的内存。

您可以添加“提交大小”列以查看分配给该进程的虚拟地址空间总量。

Here is a summary您可以在任务管理器中看到的各种内存统计信息及其含义。

答案 2 :(得分:0)

这是因为memory working set minimize

谢谢大家。 :)