【问题标题】:What is Peak Working Set in windows task manager什么是 Windows 任务管理器中的峰值工作集
【发布时间】:2013-11-07 09:47:27
【问题描述】:

我对 Windows 任务管理器内存概述感到困惑。 在一般内存概述中,它显示“正在使用”7.9gb(在我的示例中) 。

我使用进程资源管理器来总结使用的内存,它显示了以下内容:

由于这是最接近任务管理器的 7.9gb 的数字,我猜这个值显示在那里。

现在我的问题是: 什么是峰值工作集

如果我将鼠标悬停在任务管理器中的列上,它会显示:

microsoft help 表示进程使用的最大工作集内存量。

现在是所有进程的有效使用内存,还是所有进程使用的最大内存?

【问题讨论】:

  • 这个问题IMO最好放在SuperUser站点。

标签: windows memory


【解决方案1】:

您指的数字是“进程、驱动程序和操作系统使用的内存”[source]

这是一个简单但有点模糊的描述。有点类似的描述是未空闲的内存总量、缓冲区缓存的一部分或备用列表的一部分。

不是在某个时间(“峰值”)使用的最大内存,这是一个巧合,你在那里有大致相同的数字。它是当前使用的数量(由“每个人”使用,即所有程序和操作系统)。

峰值工作集是另一回事。工作集是当前位于物理内存中的进程(或者,如果您考虑多个进程,则在所有这些进程中)中的内存量。因此,peak 工作集是迄今为止看到的最大值。
一个进程可能会分配比它实际提交(“使用”)更多的内存,并且大多数进程一次提交的内存将超过它们在工作集中的内存。这是完全正常的。页面被移入和移出工作集(并移入备用列表)以确保只有有限内存量的计算机始终有足够的储备来满足任何内存需求。

【讨论】:

【解决方案2】:

所讨论的内存数据实际上并不是一个进程正在使用多少内存的可靠指标。

每个记忆关系的简要说明:

  • Private Bytes 是分配给进程的内容,以及页面文件的使用情况。
  • 工作集是非分页私有字节加上内存映射文件。
  • Virtual BytesWorking Set 加上分页的 Private Bytes 和 待命名单。

在回答您的问题时,峰值工作集是分配给相关进程的最大物理 RAM 量。

~更新~

可用内存定义为备用列表加上空闲内存的总和。总内存使用量远远超过所有进程工作集的总和。因此,由于内存共享,这个值通常不是很有用。

进程的虚拟大小是进程虚拟地址空间中已分配使用的部分。这与物理内存使用没有关系。

私有字节是进程虚拟地址空间中分配给私有使用的部分。它不包括共享内存或用于代码的内存。此值与物理内存使用量之间也没有关系。

工作集是进程使用的物理内存量。由于内存共享,这个值会有一些重复计算。

在您了解 Windows 内存管理的基本概念之前,上面提到的术语并没有真正的意义。查看HERE 以进一步阅读。

【讨论】:

  • 但是如果我例如在 .net 应用程序中使用 GC.Collect(),它将减少峰值工作集而不停止进程。这对我来说意味着峰值工作集并不是分配的最大物理 RAM 量。
猜你喜欢
  • 1970-01-01
  • 2014-12-18
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多