解决内存占用比应用进程占用高的问题

时间:2024-05-21 07:31:14


问题描述:电脑刚开机,内存占用率达到80%及以上,系统管理器中显示进程内存占用不高

内存占用的实际情况应该在“资源监视器”中查看,参数含义如下1

  • 提交:要求系统为程序保留这么多内存,如果得不到满足,就会弹出内存不足的提示框。
  • 工作集:指的是目前占用了多少,通常会比任务管理器中显示的多不少,这里工作集加起来的值才是实际占用的。
  • 可共享:当你打开更多更大的软件时,或者进行内存整理时,这一部分会被分给其他软件。
  • 专用:就是程序运行必须,不会让出来的内存。

以下所列的方法不会立即减少内存占用,需要重启电脑。方法排序不分先后,请酌情使用

本文所列方法适用情况

  • 使用系统管家等软件清理过内存,但电脑仍然内存占用过高
  • 电脑的物理内存大小(内存条容量)接近电脑主板可承担上限。查看方法

1. 关闭nbu网络数据监控

在cmd窗口使用命令sc config ndu start=disabled,管理员权限下。
原因是系统的网络数据监控和网卡驱动的数据监控相冲突,导致非页面缓存无法释放2

2. 关闭SQLServer服务

这个操作适用于之前安装并使用过SQLserver 数据库的用户。根据使用SQLserver的配置不同,SQLserver的相关进程往往占据至少几个G的内存空间,而且这部分的内存不会因为内存不足而暂时释放。所以对于短期或长期内不使用SQLServer服务的用户,可以将相应的服务禁用,未来若使用再启动即可。
SQLServer的服务项繁多,但只需要关闭核心的几个服务即可。
解决内存占用比应用进程占用高的问题
按图关闭以上禁用以上服务即可。或者可以在任务管理其中,查看SQL server进程对应的服务,然后再将其禁止。
解决内存占用比应用进程占用高的问题

3. 关闭superFetch超级预读服务

根据微软大中华区工程师返回的邮件信息得知:win10一开机,内存占用过高,主要是原因是由于Win10 SuperFetch 超级预读服务的问题:

“Windows10的SuperFetch服务是为企业应用与大型协作软件而设计的, 个人用户没有必要开启. 在大型企业中使用的专业软件中与企业策略管理, 数据库启动过程中会长达10分钟之久. 而运用SuperFetch, 可将启动时间降低到6分钟以内。
然而对个人的用户来说, 平时使用的日常软件本身的启动时间非常短 通常在1-2秒之内, SuperFetch这时候的提速只是0.2~0.5秒, 基本可以被认为是毫无作用, 而且还会加大对硬盘的监测(损失CPU性能时间)与读取时间(增加硬盘IO寻址线程分配). 而SuperFetch对游戏程序是无效的, 对于个人用户与游戏玩家来说, 开启此服务只会无形损失CPU的性能时间与损失硬盘IO寻址的线程性能.”

关闭SuperFetch的方法有两种,一种是通过修改注册表,另一种是通过“服务”关闭SuperFetchTimeBroker两项服务。
需要注意的是,有的WIn10版本禁用了通过“服务”修改SuperFetch和TimeBroker的权限,只能使用注册表修改。
通过注册表关闭这两项服务的方法在网上有很多教程,在此给出其中一篇较为详细的步骤以作参考。点击传送

4. 更新驱动

从第一个解决方案中,可以知道内存占用过大可能与驱动的占用冲突所导致的内存溢出有关,因此可以通过更新电脑驱动,新的驱动中可能提供了相应的解决方案。

这里我使用的是鲁大师的驱动管理进行驱动更新(主要问题可能是网卡驱动)。

5. 管理开机启动项

在“任务管理器”中“启动”一项里查看系统自启动的程序,右键启用或禁止
解决内存占用比应用进程占用高的问题

6. 设置虚拟内存

虚拟内存是Windows解决内存不足问题的方案之一。其原理是将电脑的硬盘的一部分充当内存空间。当内存耗尽时,电脑就会自动调用硬盘来充当内存。虚拟内存往往安置在系统盘C盘中,文件名是PageFile.sys。

需要注意的是,该方法对硬盘要求较高。即使是SSD,其读写速度与RAM差距依旧很大,虚拟内存对系统硬盘的4K性能和寻道时间要求都比较高,而当虚拟内存设置在系统硬盘时,性能一般的SSD会存在掉速现象,因为内存和硬盘进行数据交换时,会让系统变慢。

因为贫穷电脑的SSD比较小,而且读写速度不够快,因此没有使用该方法。在此贴上该方法的使用博客

7. SSD缓存

【转载】Win10内存占用过高 并且与任务管理器不符

8. Windows内存诊断重启

使用Windows自带的内存诊断工具,通常情况下检查不出什么问题wwww。但死马当活码医治,这是最简单的方法。

9. 关闭Windows快速启动

Windows快速启动的原理

「快速启动」功能结合了 Windows 10 中冷关机和休眠功能,正常的冷关机 Windows 会关闭所有应用程序并注销用户,下次启动时所有内容必需重新加载。如果启用了「快速启动」选项,在关机时 Windows 10 会将当前所有系统状态写入到休眠文件中,然后再关机。
当再次启动计算机时,Windwos 就不用再重新加载系统内核、驱动程序和系统状态,而是直接从休眠文件进行加载并刷入内存,完成之后直接向用户推送 Windwos 登录界面。如此一来便可快速启动 Windows 10,为用户节约一部分开机等待时间。

从以上定义可以看出,快速启动对开机内存占用有一定影响,但从个人实际操作来看,开启和关闭快速启动对开机后的内存占用影响不大。反而更多地减少了用户体验。

关闭的方法


  1. win10的任务管理器显示所占内存,比实际占用内存小的原因 ↩︎

  2. sc config ndu start=disabled 这个命令是什么意思?系统默认是啥? ↩︎