在Windows 7的任务管理器中,我可以选择不同的列来显示。有很多与内存和内存使用相关的信息,但是我不确定这到底意味着什么。
我安装了荷兰语的Windows,因此我将尝试翻译它们。因为我不确定英文名称。
为了:
- 工作集
- 峰值工作集
- 私人工作台
- 承担费用
- 分页池
- 未分页的池
在Windows 7的任务管理器中,我可以选择不同的列来显示。有很多与内存和内存使用相关的信息,但是我不确定这到底意味着什么。
我安装了荷兰语的Windows,因此我将尝试翻译它们。因为我不确定英文名称。
为了:
Answers:
工作集是驻留在物理内存中的虚拟页面的子集。
Windows中有多种工作集:
流程工作集包含单个流程中线程引用的页面。
系统工作集包含页面缓冲池和系统缓存中的可分页系统代码的驻留子集(主要包括内核和已加载的驱动程序)。
会话工作集,这些工作集包含Windows子系统分配的内核模式会话特定数据的常驻子集,会话分页池,会话映射视图和其他会话驱动程序。
本质上,工作集用于决定可以使用多少物理内存来避免大量分页。当页面错误发生时,工作组和系统上可用内存量的限制进行检查。如有必要,内存管理器允许进程增长到最大工作集。如果内存不足,则发生页面错误时,Windows将替换工作集中的页面。
Windows将尝试通过将修改后的页面写入磁盘来保持内存可用。如果内存不足,工作集管理器将尝试修剪大多数工作集,以增加系统可用的可用物理RAM内存量。页数较大的进程具有更高的查看趋势。
流程的默认工作集至少包含50页,最多包含345页。可以更改限制,但默认值在大多数使用情况下就足够了,还必须注意,最大工作集大小不能超过启动时计算的系统范围的最大值。
Windows报告由虚拟工作集页面使用的物理RAM的总量,峰值和私有量。专用表示在进程之间不共享的内存。
进程的虚拟地址空间中的页面是空闲,保留或提交的。应用程序可以保留地址空间,然后再提交给它;保留本身不会占用内存或页面文件空间,主要是通过推迟页面承诺来减少内存。
提交的页面是指在访问后最终转换为物理内存中有效页面的页面;它们是私有的并且可以共享,或者映射到部分的视图。节可以是共享内存或映射文件;因此,如果已提交的页面已映射到映射文件的一部分,则在访问时可能需要将它们从磁盘中引入。
最常见的已知映射文件是页面文件。它存储某些进程仍在使用但必须写入磁盘的已修改页面。通过更积极地执行此操作,可以更轻松地清空内存,而无需在此之前进行I / O写入。
内存管理器在全局范围内跟踪私有提交费用,并在每个进程中跟踪页面文件配额。然后使用这些值来确定写入页面文件的频率。请注意,释放内存是通过工作集机制完成的。
当内存中不再有内容时,将从页面文件中加载该内容。
Windows报告将提交费用作为进程没有后备存储使用的内存总量;它实质上是对页面文件中仍然不存在的物理RAM总量进行累加,然后从中减去其他映射文件。
后备存储是具有数据备份的存储。例如,如果将映像映射到内存,则映像将同时在内存和磁盘上;因此,将映像计算为内存使用量是没有意义的,因为在高内存条件下,始终可以在必要时从磁盘访问该映像。
被称为分页池和非分页池...
内核中的系统线程没有进程那样的地址空间。因此,它们必须在操作系统的内存堆中分配任何动态存储,这主要是由页面缓冲池或非页面缓冲池形成的。
分页池由虚拟内存组成,可以将页面调入和调出系统。不需要以低调度级别(较高优先级)访问内存的设备驱动程序可以自由使用分页池。
非页面缓冲池由确保始终保留在物理内存中的虚拟内存组成,因此可以在任何时间访问而不会引起页面错误。必须访问较低调度级别的内存的设备驱动程序必须使用非页面缓冲池以确保可以访问数据,因为此时I / O调用不可用,无论如何该级别主要有关键代码...
这些池具有最小和最大大小,确定为可用RAM的很小一部分。尽管它们可以增长,但请注意它们不会超过可用RAM的一定百分比。尽管非页面缓冲的池非常坚固,因为它仅用于更关键的内存,但页面缓冲的池将扩展到页面文件中。
当人们禁用其页面文件时,这是最可监督的问题之一。除其他稳定性和性能问题外,如果您禁用了页面文件,那么肯定值得一试。
— 来源:摘自Windows Internals书籍的摘录,被重写为易于理解的文本。
英文翻译为工作集,峰值工作集,工作集增量,私有工作集,提交大小,分页池和非分页池。它们大致是什么意思:
工作集:此进程(可能还有其他)驻留并映射了多少物理RAM。
峰值工作集:此进程曾经驻留过的最物理的RAM。
工作集增量:自上次更新以来工作集的更改
专用工作集:专门为此过程映射了多少物理RAM。
提交费用:此过程正在使用多少虚拟内存,可能需要页面文件支持。这是很难理解的,但是如果进程访问或修改了它映射的内存的每个字节,则基本上需要额外的RAM或页面文件。
页面缓冲池:此过程负责使用系统普通内存池(如有需要,可以将其调出)的使用量。
非页面缓冲池:此进程已锁定了无法分页的物理内存量。通常,这将用于异步I / O之类的系统对象。(此内存计入系统的非页面缓冲池。)