公众号旧文
电脑、手机、服务器的虚拟内存是一回事吗?
在 Windows XP 时代,相信你一定在 C 盘里看到过 pagefile.sys

电脑里叫“页面文件”,手机里叫“内存扩展”,服务器上叫“swap”,看起来像是三种不同的东西。
那它们到底是不是一回事?
答案是:本质是同一个机制,但实现方式和策略差别很大。
一、先说本质:虚拟内存到底是什么
虚拟内存,是操作系统的一种兜底机制。
当内存不够用的时候,系统会把一部分暂时不用的数据,挪到硬盘上,腾出空间给当前更重要的程序使用。
换句话说就是用硬盘假装成内存的一部分。
但要注意,这只是假装。因为硬盘的速度远远比内存慢:
- 内存:纳秒级
- SSD:微秒级
所以虚拟内存的意义不是让电脑更快,而是让系统在内存不够时不至于直接崩掉。
二、电脑:页面文件(Pagefile)
在 Windows 电脑上,这个机制叫做页面文件,对应一个文件:
C:\pagefile.sys
它是系统自动管理的,一般用户很少去手动调整。
特点很简单:
- 完全基于文件
- 深度绑定 Windows 内存管理
- 即使内存很大,也通常建议保留
很多程序会默认页面文件一定存在,如果你关闭,有些软件甚至会异常。
三、服务器:Swap
到了服务器(尤其是 Linux),这个东西叫 swap。
它有两种形式:
- swap 分区(独立划一块磁盘空间)
- swap 文件(类似 Windows)
相比 Windows,Linux 的 swap 更灵活,可以调优,比如:
swappiness决定系统多积极使用 swap- 可以动态开启/关闭
在服务器场景中,swap 的使用策略非常讲究:
- 小内存机器:swap 是救命的
- 大内存服务器:为了避免性能抖动,有时反而会关闭 swap
因为一旦服务器开始频繁使用 swap,性能会明显下降,甚至出现卡死但不崩的情况。
四、手机:所谓内存扩展
手机厂商这几年很喜欢宣传 12GB + 8GB 内存扩展 = 20GB 体验
听起来很猛,但本质上,还是那一套东西。
只不过手机的实现更复杂,也更激进:
1️⃣ Android
通常是几种技术组合:
- zram(内存压缩)
- 少量 swap
- 存储空间扩展
优先级一般是先压缩 → 再写磁盘 → 实在不行杀后台。
2️⃣ iOS
苹果则更干脆:
- 大量使用内存压缩
- 极少依赖 swap
- 不够用就直接杀后台
所以你会发现 iPhone 很少卡死,但后台容易被清。
五、关键区别:理念不同
虽然三者本质一样,但思路完全不同:
| 平台 | 策略 |
|---|---|
| Windows | 稳定优先,尽量不崩 |
| Linux服务器 | 可控优先,避免性能波动 |
| 手机 | 流畅优先,宁可杀后台 |
你可以用一个比喻来理解:
- 内存 = 办公桌
- 磁盘 = 仓库
当桌子放不下时:
- Windows:把东西整齐放进一个固定箱子
- Linux:可以放仓库,但要看情况
- 手机:
六、一个常见误区
很多人看到虚拟内存,会以为内存变大了。
但更准确的说法是系统更能撑,但会变慢。
因为一旦数据被换到磁盘,再读回来就会明显变卡。
所以虚拟内存的本质不是性能增强,而是稳定性增强。
七、一句话总结
电脑的页面文件、服务器的 swap、手机的虚拟内存扩展,本质上都是同一个东西。
但不同设备,根据自身场景,选择了完全不同的策略:
- 电脑:不崩最重要
- 服务器:可控最重要
- 手机:流畅最重要
也正因为如此,你在不同设备上,才会感觉它们一样,又不太一样。
扩展阅读:
如何翻译 At KFC, we do chicken right !