解决笔记本内存不足的问题
我的笔记本内存是8G,之前一直都没有什么问题,但是最近经常出现内存不足的情况,浏览器开着开着就崩溃了。查看进程,也没有发现有什么占用内存出现异常的进程。
考虑到我的用户进程一般占用的内存只有2G左右,肯定是系统哪里出现了异常,准备好好排查下。
系统进程
查看耗费内存超过100M的进程:
1 | |
发现有一个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.

像上面这个截图,可以看到已使用的内存中,压缩后的内存有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个问题综合起来的。
一个是驱动的更新问题,另外一个是随着我安装的软件和浏览器插件的增加,服务和浏览器扩展占用的内存也越来越高。
今后可以时不时注意清理下无用的服务和浏览器扩展,这样感觉我的笔记本还能再战几年。