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每个进程都有自己的虚拟地址空间。
- 2Windows 跟踪这些区域的映射和保护。
- 3内存管理器决定什么留在内存中,什么可以被换出。
关键术语
Virtual address space
进程使用的私有逻辑地址映射。
Working set
目前常驻在进程的物理内存中的页面集。
Page file
当内存内容被换出时使用的由磁盘支持的存储。
带有许多选项卡的浏览器
每个进程看到的是看起来像巨大的私有内存空间,但 Windows 仅映射当前实际需要的页面。
常见误解
虚拟内存不是假内存。它是允许 Windows 隔离、保护和有效地管理真实物理内存的抽象。
引导练习
使用此主题从理论走向实践。
- 1打开内存指标实验并在三个场景之间切换。
- 2对于每一个场景,解释为什么 working set 可以比 commit 低。
- 3在 Windows 上,打开任务管理器 → 详细信息并添加 Working set 和 Commit size 列。