最近翻消息记录,发现问“电脑内存占用过高”的人是真多,基本每个月光是微信私聊都能遇到十几条同类问题。截图发过来,无一例外都是任务管理器里的内存占用率显示60%、70%,还有直接干到90%的,而且都会补一句“开机就这样,关机重启也没用”。这期就把这类问题的排查思路和能直接落地的优化方案完整整理一遍,放弃那些只让人“关几个启动项”的糊弄操作,一步一步真正定位到根因。
1. 先搞明白:你的电脑内存到底被什么吃掉了
1.1 内存占用率飙升,真的算异常吗
先说个反直觉的结论:开机后内存占用到60%,甚至70%,不一定是坏事。Windows从Win Vista之后引入了一套内存预加载机制,以前叫Superfetch,现在叫SysMain,系统会在空闲时把常用程序、常用文件预读到内存里,用你这台电脑没发挥完的内存容量去换启动速度和响应速度。所以一台16GB内存的机器,装完系统、装完常用软件,开机占用个5~6GB非常正常,折合成比例就是40%上下;8GB的老机器开机在4GB左右也不稀奇。
真正需要警惕的场景是:内存占用长时间维持在80%以上,同时系统开始明显卡顿,打开窗口要转圈,切任务要等一两秒,甚至弹出“内存不足”“系统资源不足”之类提示。这时候才是内存吃紧。判断标准我一般只看两个:一是“正在使用”的内存是否长期超过物理内存70%,二是“可用”内存是否长期不足10%。如果只是百分比高,但日常操作流畅,那这台电脑其实没病,不用瞎折腾。
顺带说一句,百分比这个概念本身就容易吓人。同样的内存占用率,在8GB机器和32GB机器上完全不是一个意义。你把一个16GB用户的内存占用截图转给32GB的机器看,会得出完全不同的结论。
1.2 物理内存、备用内存和“裸奔”的空闲内存
任务管理器“性能”页里,那个内存构成图很多人没仔细看过。它把物理内存分成了四个颜色:正在使用、已修改、备用、空闲。这里最容易造成误解的是“备用”和“空闲”。
“空闲”是真的闲置未用的内存,Windows认为暂时不需要动它。“备用”则是缓存了硬盘数据或软件运行数据的内存。这部分听起来像是被占用了,可它随时可以被回收给需要的程序,所以任务管理器计算“可用”内存时,是把“备用”和“空闲”加在一起的。很多用户看到内存占用80%,结果点开一看,备用内存占了十几个G,这种情形并不需要你操心。
“已修改”是指内存里内容需要写回硬盘才能释放的部分,正常情况下占比很小。如果“已修改”长期很高,说明系统在频繁做磁盘换页,这时候电脑才会感觉卡。最后才是“正在使用”,这部分是进程实际持有的物理内存,排障重点看它。
所以以后看到内存占用率高,先别急着优化,先打开任务管理器看一眼内存构成。只要“可用”内存还不低,电脑就还能扛得住。
1.3 检查内存压力的两个硬指标
比“占用率”更靠谱的是看“硬错误”和“提交内存”。打开任务管理器里的“资源监视器”(Win+R输入resmon),切到“内存”选项卡,能看到一个“硬错误/秒”的实时曲线。硬错误的意思是需要从硬盘里读取页面文件来补充物理内存,这个操作非常慢。正常情况下这个数字是零或者偶尔跳一下;如果持续有几十甚至上百个硬错误,说明物理内存是真的不够用了,系统被迫拿硬盘当内存用,卡顿就是这么来的。
另一个指标在任务管理器“性能-内存”页面,看“已提交”的百分比。已提交内存等于物理内存加页面文件剩余量,代表所有进程承诺过的内存总量。如果这个百分比长期逼近100%,说明你的内存加上页面文件都快不够分了,这时候最容易出现“内存不足”弹窗。
这两个指标,比单纯看占用率可靠得多。遇到“占用率高但很流畅”的情况,多半是备用内存比较多;遇到“占用率高且卡顿”的情况,才是真正需要排查内存占用元凶的时候。
2. 三分钟定位内存元凶:从任务管理器到专业工具
2.1 任务管理器:先看进程,再看性能
排查的第一步永远是任务管理器。快捷键Ctrl+Shift+Esc直接呼出,在“进程”标签页里点击