beginnerStart Here Step 3打开实验 →

内存管理

虚拟地址空间、分页、工作集,以及 Windows 如何跟踪内存。

30秒速览

虚拟地址空间被划分为多个区域(VADs);物理 RAM 存放工作集,而 pagefile 为被置换出的私有页面提供后备存储。

你理解这个如果…

  • ✓你可以区分 commit charge 和物理 RAM 的使用情况。
  • ✓你知道什么会触发 hard page fault 与 soft fault。

相关实验

该领域的动手练习 — 在浏览器中或在 Windows 机器上。

[

内存指标实验

在现实场景中比较私有字节、工作集和提交。

打开实验](/tools/memory-metrics)

查看所有实验

这个分支中的引导路径

逐步遵循简短序列。每条路径链接到第一个主题;在每个页面上使用“阅读下一篇”继续。

内存深度剖析

VADs、池、分页、工作集,以及缓存如何使用 RAM。

本路径的第1步,共6步

1. 内存管理2. VAD 树3. 分页和页面错误4. 工作集和修剪5. 池和堆6. Cache Manager

按照此路径

官方 Microsoft 文档

在 Microsoft Learn 上与该主题最相关的官方参考。

[

Microsoft Learn

虚拟地址空间

learn.microsoft.com

](https://learn.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/virtual-address-spaces)

为什么这很重要

Windows 内存行为解释了崩溃、速度变慢、隔离,以及为什么一个进程不能轻易安全地读取另一个进程的内存。

心智模型

程序不使用原始 RAM 地址工作。它们在 Windows 映射、保护和换入换出的虚拟地址空间中工作。

示意图

单击突出显示的区域以了解层并深入树状结构。

内存层User VA spaceSession / kernel VASystem PTEs & poolsPhysical memory

User VA space

应用程序分配、堆、堆栈、映射文件和加载的模块都在此显示为虚拟范围。

Windows 构建块

您可以在任务管理器、资源管理器或文档中查找的名称和路径。

  • Filepagefile.sys

    卷根目录

    置换出的私有页面的后备存储

深入一层

为在打开子主题前需要更多精确细节的读者提供的额外细节。

  • Commit charge 追踪承诺的虚拟内存;物理 RAM 使用是一个单独的约束。
  • Superfetch (SysMain) 和文件缓存与进程工作集竞争 RAM。

它是如何工作的

  1. 1每个进程都有自己的虚拟地址空间。
  2. 2Windows 跟踪这些区域的映射和保护。
  3. 3内存管理器决定什么留在内存中,什么可以被换出。

关键术语

Virtual address space

进程使用的私有逻辑地址映射。

Working set

目前常驻在进程的物理内存中的页面集。

Page file

当内存内容被换出时使用的由磁盘支持的存储。

带有许多选项卡的浏览器

每个进程看到的是看起来像巨大的私有内存空间,但 Windows 仅映射当前实际需要的页面。

常见误解

虚拟内存不是假内存。它是允许 Windows 隔离、保护和有效地管理真实物理内存的抽象。

引导练习

使用此主题从理论走向实践。

打开实验

  • 1打开内存指标实验并在三个场景之间切换。
  • 2对于每一个场景,解释为什么 working set 可以比 commit 低。
  • 3在 Windows 上,打开任务管理器 → 详细信息并添加 Working set 和 Commit size 列。