解决笔记本内存不足的问题

我的笔记本内存是8G,之前一直都没有什么问题,但是最近经常出现内存不足的情况,浏览器开着开着就崩溃了。查看进程,也没有发现有什么占用内存出现异常的进程。

考虑到我的用户进程一般占用的内存只有2G左右,肯定是系统哪里出现了异常,准备好好排查下。

系统进程

查看耗费内存超过100M的进程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ tasklist /FI "MEMUSAGE gt 100000"

映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
Memory Compression 2124 Services 0 867,524 K
AvastSvc.exe 3572 Services 0 115,316 K
pomotodo.exe 13492 Console 1 118,920 K
chrome.exe 14424 Console 1 194,580 K
chrome.exe 15636 Console 1 156,896 K
chrome.exe 16604 Console 1 115,960 K
chrome.exe 23372 Console 1 149,248 K
chrome.exe 122660 Console 1 103,976 K
chrome.exe 6024 Console 1 153,212 K
chrome.exe 2380 Console 1 114,000 K
chrome.exe 126004 Console 1 133,488 K
chrome.exe 131108 Console 1 135,724 K
chrome.exe 133208 Console 1 141,204 K
chrome.exe 133476 Console 1 156,864 K

发现有一个Memory Compression的进程占用了800M+内存。这里有一篇介绍Memory Compression的文章,从文章内容来看,这个是正常的,不需要处理,也不应该去处理,因为这个本身就是用来在内存使用较高的时候,通过高效的压缩,来降低内存的(降低70%):

Not only is the process fast, but the space-saving aspect of the compression is considerable. In fact, pages of memory are compressed to about 30% of their original size. This means that the process will essentially return 70% of the previously used space to be used by other applications.

compress

像上面这个截图,可以看到已使用的内存中,压缩后的内存有394MB,节省了950MB的内存。如果按照之前高峰期压缩内存为867M计算,当时有给我节省近2G的内存,十分可观。

服务

鉴于上面的操作未能解决问题,因此我准备尝试关掉一些不需要的系统服务。

通过此电脑->管理->服务和应用程序->服务,然后查看目前运行中的服务,将一些不必要的服务(比如Adobe相关的服务)由自动改为手动,并关掉了。

不过这个能关掉的也不多,还是不能解决问题。

驱动

网上看到有个人遇到类似的问题,然后通过更新网卡驱动解决了。因此我也尝试了下。

下载驱动大师,发现确实有很多驱动都没更新了。

更新驱动,然后重启电脑,再开启平时的各种软件,发现内存大约在83%左右,相比之前的90%+有所缓解。扣除用户进程,系统进程占用的内存大约在40%左右。

Chrome浏览器优化

用户进程里面,Chrome浏览器是占用内存最大的,动辄2个G(我一般会常驻6、7个标签页),因此如果能优化一下Chrome的内存占用,帮助也很大。

先打开我常用的网址,然后Shift+ESC查看每个页面的内存占用情况,发现Google Translate页面的内存占用居然有200M+,拦截广告的Adblock扩展也占用了100M+内存。其他常规页面基本占用内存都在100M多一点。

然后我把平时不怎么用到的扩展都禁用了。

另外网上看到一个扩展: The Great Suspender,可以在页面没有被使用的时候将其挂起,然后再次访问页面时,再重新加载。我安装这个扩展试了下。

注意:公司的wifi无法访问Chrome网上商店,翻墙也不行,应该是公司网关主动禁掉了访问Chrome商店的请求,或者是公司的IP被Chrome商店给禁掉了。

因此需要连接自己的手机4G网络,然后翻墙安装扩展。

安装后,需要简单设置下。我设置成了1分钟不查看标签页,就自动挂起。

经测试,打开数个标签页,然后不查看这些标签页,一分钟后,Chrome的内存占用从1826M,降低到了888M左右,效果十分显著。

不过每个页面再次查看,都需要重新加载(如果页面已经滚动到了其他位置,再次加载后也会自动定位到该位置,这点很赞),会有个等待时间,因此建议将页面挂起的时间设置长一些,这样频繁切换的标签页就不受影响。

VSCode优化

VSCode会有多达13个进程,总计耗费接近1G的内存。

这个还没有找到比较好的优化方案,即使我disable掉大部分扩展,也没有看到明显的内存降低,只是从1G下降到了850M。

总结

我这次遇到的内存问题,应该是2个问题综合起来的。

一个是驱动的更新问题,另外一个是随着我安装的软件和浏览器插件的增加,服务和浏览器扩展占用的内存也越来越高。

今后可以时不时注意清理下无用的服务和浏览器扩展,这样感觉我的笔记本还能再战几年。