Windows 提交费用低于物理 RAM 使用量?

4 memory windows commit-charge

我已经看到了这个问题,尽管有标题,但它不是重复的,因为给出的答案没有回答我的问题。

我目前有一个 Windows XP 系统,该系统报告系统提交使用情况少于物理内存使用情况。我的理解是系统提交是页面文件的总量加上 RAM 使用量。正如维基百科所说:

如果必须删除 RAM 的所有当前内容,将使用的页面文件量。

那么怎么可能让 RAM 使用量高于RAM页面文件使用量的总和呢?

进程资源管理器屏幕截图

shf*_*301 6

提交费用金额不包括所有物理内存;它只计算可以分页到磁盘的所有物理内存。

来自Pushing the Limits of Windows -- Virtual Memory(我建议阅读整篇文章)

正如您对提交保证的描述所期望的那样,提交限制是物理内存和分页文件大小的总和。实际上,并非所有物理内存都计入提交限制,因为操作系统保留了部分物理内存供自己使用。

并非进程分配的所有虚拟内存都计入提交限制。正如您所见,保留的虚拟内存没有。表示磁盘上文件的虚拟内存(称为文件映射视图)也不计入限制,除非应用程序要求写入时复制语义,因为 Windows 可以丢弃与物理内存中的视图相关的任何数据,然后从文件中检索它。Testlimit 的地址空间中的虚拟内存,其中映射了其可执行文件和系统 DLL 映像,因此不计入提交限制。有两种类型的进程虚拟内存确实计入提交限制:私有和页面文件支持。

因此,某些操作系统内存使用量不计入该限制以及内存映射文件。在 Windows 中,所有 EXE 和 DLL 文件都作为内存映射文件加载。它们被加载到物理内存中,但是由于它们在加载后没有被修改(通常)Windows 不会通过页面文件支持它们,因为它知道它可以从它们的磁盘文件中重新读取它们 - 这就是为什么它们不'不计入提交限制。