在程序界,常有这种思想:用空间换时间,用时间换空间。都是相对而言,在内存足够大的情况下,下面说几点优化其中有一些是利用空间换时间的思想,适用范围:建议内存最小16G,最好是32G及以上。
1、关闭超线程,优点:大大降低功耗大大降低发热,在同等功率和电压下可以得到更高的频率,单核能力加强,玩游戏帧率上升,在当前物理核心越来越多的情况下,一般性任务核心数量是够用了,超线程技术是早期为了解决线程过多时核心不够用的情况下把一个大的物理核分为两个逻辑线程核,然而在物理核心够用的情况下开启超线程会消耗调度资源,如果并没有那么多线程任务反而会增加负担,增加cpu和内存资源的消耗,缺点:如果你要多开很多游戏以至于内存会爆那么就不要关闭它;如果是win10则可以关闭小核,开启大核超线程会更好,win11的话因为大小核的调度优化的很好,所以可以选择关闭超线程提高能耗比,同电压下获得更高频率,更容易超频。
2、关闭虚拟内存,优点:可以节省硬盘空间并且延长硬盘寿命,缺点:PS和3dsmax这类软件要求必须开启虚拟内存,那么要使用它们就不能关闭,如果你要多开很多游戏以至于内存会爆那么也不要关闭它;
3、关闭系统还原点,优点:节省硬盘空间,缺点:不太明显;
4、禁用前台程序的页面交换,优点:把应用程序在硬盘级的数据交换强行按排到内存里去操作,响应数量级从ms级上升到ns级,缺点:如果你要多开很多游戏以至于内存会爆那么就不要禁用它或者有非常吃内存的应用程序也不要禁用它,如果要开很多虚拟机也不要禁用它,然后就是占用更多一点内存;
方法:修改注册表的DisablePagingExecutive的键值,把值从0改为1,位置:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management
5、 修改为大容量系统缓存,优点:提高最大程序预加载进内存的文件数,提高程序响应速度,缺点:要占用更多一点内存;
方法:修改注册表的LargeSystemCache的键值,把值从0改为1,位置:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management
第4和第5点里面如果没有对应键值就自行建一个,结果如下图(做完第4和第5点大概要牺牲3G左右内存去提高响应速度,使程序更丝滑,也就是利用空间换时间):
第5点已经开启了大容量缓存接下就是设置具体的数据,打开终端管理员,对MaxOperationAPIFiles进行设置,默认是512,如果你是16G内存就设为4096,如果是32G及以上就设为8192,具体方法如下:
在终端管理员PowerShell里里输入:set-mmagent,这里因为我是32G内存所以输入数值8192,最后用get-mmagent去查看结果,如下图:
上图上其它的参数,想设置也可以设置一下,具体大体意思如下(我个人是全用的False):
ApplicationLaunchPrefetching程序预加载进内存(内存大就开)
ApplicationPreLaunch程序预运行(CPU速度快就开)
MaxOperationAPIFiles最大程序预加载进内存的文件数(内存越大可以去开得越多)
MemoryCompression内存压缩(CPU速度快就开)
OperationAPI(内存大就开,可以让内存预读取非系统的任何程序)
PageCombining(让系统合并具有相同内容的内存,可以节省内存,CPU速度快就开)
开启方法:
enable-mmagent -需要开启的名字
关闭方法:
disable-mmagent -需要关闭的名字
备注:以上五点我都进行了如上优化,然后实测如下:虽然多耗3G左右内存,并且没有虚拟内存,数据全在内存进行交换,但是一般性的游戏多开和多软件运行都没有使内存爆掉,并且响应速度提升,做了以上优化之后,游戏多开不要使内存爆就还是可以的,如果你经常性爆内存那么以上优化中的一些是不能去这样优化的,我作为后端开发人员,做了如上优化之后,觉得系统很好用,日常内存同时运行软件:idea+vscode+Hyper-v+mysql+Navicat+SQLyog+putty+百度网盘+一堆页面+华硕笔记本自带的一堆软件+QQ+微信+网易云音乐+360安全卫士+360杀毒+优化之后牺牲的3G内存,内存没爆,完全够用,所以很适合做以上优化。