Skip to content

Windows10 IDEA卡顿修复,虚拟内存过大

情况说明

我的电脑内存32G, 不知道啥时候开始电脑开始越来越卡, 编译个java项目需要11分钟,开启idea需要大量 时间扫描文件索引。 并且查看cpu频率(4.2G)并没有减低,不过频繁飙高占用到90-100%。 我给idea分配了6g内存jvm参数如下 xxx.vmoptions

-Xms3G
-Xmx6G
-XX:+UseZGC
-Xms3G
-Xmx6G
-XX:+UseZGC

经过各方排查之后发现应该是内存的问题,经过SpaceSniffer扫描后发现大的(28G) pagefile.sys 这时候我的虚拟内存设置是自动管理的。

经过一番排查修改虚拟内存为最小100M最大900M后系统终于恢复原来的流畅,编译项目缩短到40s。

虚拟内存交换过程中会占用cpu

关于关闭虚拟内存对性能提升的讨论

关键部分如下

  1. win10新版默认打开的内存压缩技术,将要写入页面文件的内容进行压缩后再写入,减小硬盘写入的压力,这个技术能提高小内存+机械硬盘这种IO瓶颈严重电脑的日常使用感受,但是对于游戏用户就是灾难了,会造成cpu使用率的波动,建议通过powershell命令:Disable-MMAgent -mc 关闭。当然,如果关闭SysMain服务(原superfetch服务),或是禁用页面文件,这个功能也是失效的,可以在任务管理器内存页的“使用中(已压缩)”看到运行状况。
  1. win系统的老历史,在打开页面文件的情况下,无论你有多少闲置内存,windows都会往硬盘的页面文件里倒腾东西。现象就是一些载入完成的的场景,开页面文件时会发现系统一下一下访问硬盘,而关闭页面文件运行同一场景,系统就完全没有这些操作,帧数的瞬时波动也就没有了,所以有时候FPS游戏感觉没跟手,真不一定是网络问题。测试的话,单机赛车游戏一个人跑闭环赛道最容易重现与分析。

经过以上讨论可以知道原来虚拟内存过大会影响系统性能。看来我电脑的卡顿原因就是这个了。

把虚拟内存关闭和减少虚拟内存都可以减少内存交换带来的系统卡顿。

修改方法

win+s打开搜索

输入“查看高级系统设置” 内存大的时候直接关闭分页先点设置再点确定,直接点确定不管用。

关闭界面后会提示是否立即重启,点击确定即可重启,重启之后电脑就速度快了。

手工关闭内存压缩

关闭

Disable-MMAgent -mc
Disable-MMAgent -mc

开启

Enable-MMAgent -mc
Enable-MMAgent -mc

查看状态

Get-MMAgent
Get-MMAgent