我对 Windows 任务管理器内存概述感到困惑。在一般内存概述中,它显示“正在使用”7.9gb(在我的示例中) 。
我使用进程资源管理器来总结使用的内存,它向我显示了以下内容:
由于这是最接近任务管理器的 7.9gb 的数字,我猜这个值显示在那里。
现在我的问题是:Peak 工作集是什么?
如果我将鼠标悬停在任务管理器中的列上,它会说:
微软帮助说进程使用的最大工作集内存量。
现在是所有进程的有效使用内存,还是所有进程使用的最大内存?
您所指的数字是“进程、驱动程序和操作系统使用的内存” [来源]。
这是一个简单但有些模糊的描述。一个有点类似的描述是不空闲的内存总量,或者缓冲区缓存的一部分,或者备用列表的一部分。
这不是某个时间使用的最大内存(“峰值”),巧合的是您在那里的数字大致相同。它是当前使用的数量(由“每个人”使用,即所有程序和操作系统)。
峰值工作集是另一回事。工作集是当前位于物理内存中的进程(或者,如果您考虑多个进程,则在所有这些进程中)中的内存量。因此,峰值工作集是迄今为止看到的最大值。
一个进程可能会分配比它实际提交(“使用”)更多的内存,并且大多数进程一次提交的内存将超过它们在工作集中的内存。这是完全正常的。页面被移入和移出工作集(并移入备用列表)以确保只有有限内存量的计算机始终有足够的储备来满足任何内存需求。
有问题的内存数据实际上并不是一个进程正在使用多少内存的可靠指标。
每个内存关系的简要说明:
在回答您的问题时,峰值工作集是分配给相关进程的最大物理 RAM 量。
~ 更新 ~
可用内存定义为备用列表加上空闲内存的总和。总内存使用量远远超过所有进程工作集的总和。因此,由于内存共享,此值通常不是很有用。
进程的虚拟大小是已分配使用的进程虚拟地址空间的一部分。这和物理内存使用没有关系。
私有字节是进程虚拟地址空间中分配给私有使用的部分。它不包括共享内存或用于代码的内存。此值与物理内存使用量之间也没有关系。
工作集是进程使用的物理内存量。由于内存共享,这个值会有一些重复计算。
除非您了解 Windows 内存管理中的基本概念,否则上面提到的术语实际上并没有多大意义。看看这里以进一步阅读。