怎么查看内存使用情况

系统问题

内存不够用的时候,电脑反应慢得像脚底粘了泥,可你打开任务管理器一看,满屏进程名字密密麻麻,压根不知道从哪儿看起。其实 Windows 把查看内存使用情况这件事拆成了好几层:从一眼看总量,到逐进程查占用,再到记录内存随时间怎么变化,工具都是系统自带的,一个都不用装。

任务管理器:整体用量和进程占用一次看全

最先要会的就一个快捷键:Ctrl + Shift + Esc。它直接弹出任务管理器,比起 Ctrl+Alt+Del 再选一遍快得多。要是版本比较老的系统弹出来是精简窗口,点左下角“详细信息”展开就行。

性能选项卡:总量、余量一目了然

切到“性能”选项卡,左侧列表里点“内存”,右边这块就是全局视图。上面一条曲线画的是最近 60 秒的内存占用走势,下面几行数字才是重点:

  • 使用中(已压缩):当前被程序实实在在占着的内存,括号里那部分是系统压缩过的一部分,属于内存紧张时的自救手段。
  • 可用:还能拿来用的余量,包括完全空闲的和随时可以被收回的缓存。
  • 已提交:操作系统承诺给所有程序的内存总额,它等于物理内存加页面文件的一部分,这个数字超过物理内存是正常的。
  • 速度和插槽已使用:前者是内存条的工作频率,后者像“2 of 4”这种写法,意思是主板有 4 个插槽、目前插了 2 条。

Windows 任务管理器“性能”选项卡

进程选项卡:抓出到底是谁在吃内存

光知道用了 80% 没意义,得知道是谁用的。切到“进程”选项卡,点一下“内存”这个列标题,列表会按占用从高到低排好。这时候排在最前面的,基本就是答案。

这里显示的数字叫工作集(进程当前实际占用的那部分物理内存)。浏览器最容易霸榜,一个标签页一个进程,开上二三十个标签,几个 G 就没了。你不确定某个进程是什么来头,右键点它选“属性”,能看到文件路径和数字签名,别急着结束那些不认识的系统进程。

 任务管理器“进程”选项卡

资源监视器:把内存的每一个去向摊开看

任务管理器的数字比较粗,想知道内存具体分成哪几块,按 Win + R 输入 resmon 回车,打开资源监视器,切到“内存”标签页。这里会看到一组任务管理器没细说的分类:

项目 含义 看它的用处
使用中 进程正在用的内存总和 和任务管理器进程列表能对上
已修改 改过但还没写回硬盘的数据 数值很大说明写入压力高
备用 缓存起来的旧数据,随时可被回收 这部分算“可用”,不是浪费
可用 真正还能分配出去的余量 判断紧不紧张就看它
已提交 物理内存 + 页面文件的承诺额度 接近上限时会提示内存不足
硬件保留 固件和集成显卡预留的内存 几十到几百 MB 属正常

资源监视器“内存”标签页

第一次看到“备用”占了十几个 G 的时候,我还以为电脑出毛病了,后来才明白那只是系统把空闲内存拿去做缓存,程序要用的时候立刻就能吐出来。内存闲着才是浪费,这条账得算明白。

另外有个容易吓到人的情况:硬件保留那一项如果显示两三个 G,通常是集成显卡按需分配走了大块内存当显存,或者是 32 位系统受 4GB 寻址上限的限制,实际可用只能到 3.2GB 左右。前者是花钱买来的性能,后者换 64 位系统才能解。

性能监视器:记录内存随时间怎么变

前面两个工具都是看“此刻”。如果你想观察内存在一段时间里的波峰波谷,比如跑某个软件时是不是一路往上涨,那就按 Win + R 输入 perfmon,打开性能监视器,点“性能监视器”节点,再用绿色的加号按钮往图里添计数器。

  • Memory\Available MBytes:可用内存,单位 MB,低于几百就该警觉了。
  • Memory\Pages/sec:每秒读写页面文件的次数,这个值长期居高不下,说明物理内存真的不够用了。页面文件就是硬盘上划出来的一块区域,内存吃紧时拿它临时顶替,可硬盘的速度和内存差着好几个数量级,所以你会听到机箱里硬盘咔咔响、鼠标开始飘。
  • Memory\% Committed Bytes In Use:提交量占上限的百分比,比物理内存使用率更能反映真实压力。

性能监视器窗口

懒得一个个加计数器,直接在运行框里敲 perfmon /report,系统会花 60 秒左右采集一遍数据,生成一份带内存、磁盘、CPU 各章节的完整诊断报告,Windows 10 和 11 上都能用。

命令行和 PowerShell:远程或要留数据时更顺手

图形界面适合自己看,遇上远程连接、或者想把数据复制到文档里,命令行效率更高。

  1. 在 CMD 里跑 systeminfo | findstr /C:"物理内存",中文系统能直接搜出“物理内存总量”和“可用的物理内存”两行。
  2. 老版本 Windows 还能用 wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Value,返回的单位是 KB。丑话说在前头,Windows 11 24H2 之后 wmic 默认不再随系统安装,这条命令在新机器上可能直接报错,改用下面的 PowerShell 写法更保险。
  3. PowerShell 里执行
    Get-CimInstance Win32_OperatingSystem | Select-Object @{n='总内存GB';e={[math]::Round($_.TotalVisibleMemorySize/1MB,1)}}, @{n='可用GB';e={[math]::Round($_.FreePhysicalMemory/1MB,1)}}
    结果直接按 GB 显示,读起来舒服。
  4. 想看进程排名就再来一条:
    Get-Process | Sort-Object WS -Descending | Select-Object -First 10 Name, @{n='内存MB';e={[math]::Round($_.WS/1MB,0)}}
    WS 就是工作集,和任务管理器里那个“内存”列是同一个东西。

PowerShell 窗口

有一说一,命令行最大的好处是可以把输出导成文本或者 CSV,做趋势对比的时候不用靠眼睛盯屏幕。

几个容易看错的数字

“可用”和“空闲”不是一回事。空闲是完全没人碰的内存,通常很小;可用 = 空闲 + 备用,所以可用内存有几个 G 也不代表浪费了几个 G。
“内存使用率”算的是使用中除以总量,缓存那部分不算进去,所以 70% 到 80% 的占有率在 16GB 机器上属于常见状态。
“已提交”超过物理内存,说明系统已经在动用页面文件,只要没到提交上限、硬盘也不狂转,就先不用慌。

补充:Linux 和 macOS 上的查看方式

习惯命令行的在 Linux 上敲 free -h,available 那一列才是判断余量的正确指标,buff/cache 和 Windows 的“备用”是一个思路。想动态看就 top 或者 htop,按内存排序同样很方便。macOS 自带的活动监视器更省事,打开“内存”标签页,底部“内存压力”那张小图一旦变黄变红,就说明该关点东西了。这两个系统我手边没有设备,就不放截图了。

工具摆在这儿,多数时候打开任务管理器点两下,问题就水落石出了。

操作系统种类多样、版本繁杂,本文内容可能无法完全匹配你的具体环境,不保证完全正确或普遍适用,仅供操作参考。