超级预读
- sysmain服务或Superfetch服务(Prefetch预读文件夹)
- 查看状态 C:\windows\system32>sc query SysMain
SERVICE_NAME: SysMain TYPE : 30 WIN32 STATE : 1 STOPPED WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
- 暂停 sc stop SysMain
- 禁用 sc config SysMain start=disabled
- 禁用它后,一顿内存压缩功能都停用了,不需要额外单项设置
内存压缩设置
- 查看当前设置 Get-MMAgent
- Get-MMAgent 是 Windows PowerShell 中用于查询 内存管理代理(Memory Management Agent) 配置的命令,主要与系统的预取(Prefetch)、内存压缩、页面合并等优化功能相关。以下是你提供的输出
(anaconda3)PS C:\windows\system32> Get-MMAgent ApplicationLaunchPrefetching : True 应用程序启动预取 ApplicationPreLaunch : True 应用程序预启动 MaxOperationAPIFiles : 256 跟踪最大文件数 MemoryCompression : True 内存压缩 OperationAPI : True 预读API PageCombining : False 页面合并 PSComputerName :
- 功能解释(grok)
- 关闭虚拟内存页面文件
虚拟内存页面文件(pagefile.sys)是Windows用来扩展物理内存的一种机制。当物理内存不足时,系统会将不常用的内存页交换到硬盘上的页面文件中。如果你关闭并删除了页面文件,系统将无法使用这种交换机制。这意味着在物理内存不足时,系统可能会出现内存不足的错误,尤其是在运行大型应用程序或多任务处理时。 - 关闭内存压缩(Disable-MMAgent -MemoryCompression)
内存压缩是Windows 10中的一项功能,它在将数据交换到页面文件之前,先压缩内存中的数据,以减少对页面文件的使用。关闭内存压缩后,系统会直接将数据交换到页面文件(如果页面文件存在)。但由于你已经关闭了页面文件,这项设置会进一步限制系统处理内存不足的能力。 - 关闭页面合并(Disable-MMAgent -PageCombining)
页面合并是Windows内存管理器的一项功能,它通过合并相似的内存页来节省内存。关闭此功能后,系统不会尝试优化内存使用,可能会导致内存使用效率降低。 - 设置跟踪文件数为4096(Set-MMAgent -MaxOperationAPIFiles 4096)
这个命令将内存管理器跟踪的最大操作API文件数从默认的256增加到4096。这通常与系统监控或调试相关,允许系统跟踪更多的文件操作。增加这个值可能会对性能有轻微影响,但具体影响取决于你的系统配置和使用场景。 - 关闭启动预读(Disable-MMAgent -ApplicationLaunchPrefetching)
启动预读是Windows用来加速应用程序启动的功能,它会预先加载应用程序所需的资源。关闭此功能可能会导致应用程序启动速度变慢。 - 关闭预启动(Disable-MMAgent -ApplicationPreLaunch)
预启动是Windows 10中的一项优化功能,它可以预先启动某些常用应用程序以加快加载速度。关闭此功能可能会使这些应用程序的启动速度变慢。
- 关闭虚拟内存页面文件
- 管理功能设置
- 关闭内存压缩 Disable-MMAgent -MemoryCompression
- 关闭页面合并 Disable-MMAgent -PageCombining
- 关闭启动预读 Disable-MMAgent -ApplicationLaunchPrefetching
- 开启启动预读 Enable-MMAgent -ApplicationLaunchPrefetching
- 设置跟踪最大文件数 Set-MMAgent -MaxOperationAPIFiles 256
虚拟内存设置
- 目标:减少cpu冗余操作,内存足够大,不需要节省内存而浪费cpu资源
- 查看当前设置
- wmic pagefile list /format:list
- wmic computersystem get AutomaticManagedPagefile
(anaconda3)PS C:\windows\system32> wmic pagefile list /format:list AllocatedBaseSize=32768 CurrentUsage=0 Description=C:\pagefile.sys InstallDate=20250312153835.037552+480 Name=C:\pagefile.sys PeakUsage=0 Status= TempPageFile=FALSE (anaconda3)PS C:\windows\system32> wmic computersystem get AutomaticManagedPagefile AutomaticManagedPagefile FALSE
- 设为自动管理
- wmic computersystem where name="%computername%" set AutomaticManagedPagefile=True
- 设为c盘16GB
- wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False
- wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=16384,MaximumSize=16384
- 重启生效
- 关闭页面文件
- wmic computersystem where "name='%computername%'" set AutomaticManagedPagefile=False
- wmic pagefileset where "name='C:\\pagefile.sys'" delete
优化建议收集
- TK TK
笔记本电脑,CPU是垃圾1335u,但内存可以加到64gb,所以节省内存容量而消耗CPU资源的优化选项可以一律关掉,例如内存压缩,页合并。2024-12-16 - VectorLink
假如你使用了微信或者qq这种在系统文档拉屎的软件,sysmain的处理器占用能瞬间提升2024-04-05 - erich
确实有助于减少内存占用,关了之后占用反而变高了,再开启16g内存占用从25%降到21%
2024-12-05 - assassin
https://www.bilibili.com/video/BV1CG4y1173x/
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management
ApplicationLaunchPrefetching 程序预加载进内存(内存大就开)
ApplicationPreLaunch 程序预运行(CPU速度快就开)(我关了)
MaxOperationAPIFiles 最大程序预加载进内存的文件数,只需要运行set-mmagent之后输入数字即可(内存越大开得越多,默认256)(这个就是在C:\Windows\Prefetch里面的文件数量,最多8192个)
MemoryCompression 内存压缩(CPU速度快就开)(我关了)
OperationAPI 可以让内存预读取非系统的任何程序(内存大就开)
PageCombining 让系统合并具有相同内容的内存,可以节省内存(CPU速度快就开)(我关了)
2023-9-1 - Bed1vere
我直接禁用sysmain。这人说的很多都是过时的设置,特别是硬盘那一期
2023-9-1
关闭预读压缩合并
- 设置
- 关闭虚拟内存
wmic computersystem where "name='%computername%'" set AutomaticManagedPagefile=False;wmic pagefileset where "name='C:\\pagefile.sys'" delete
减少磁盘I/O和CPU开销 - 关闭超级预取
sc stop SysMain;sc config SysMain start=disabled
减少磁盘I/O和CPU开销(禁用后,下面一堆全都自动被关闭)- 关闭内存压缩
Disable-MMAgent -MemoryCompression
减少cpu开销,增加内存占用 - 关闭页面合并
Disable-MMAgent -PageCombining
减少cpu开销,增加内存占用 - 关闭启动预读
Disable-MMAgent -ApplicationLaunchPrefetching
减少磁盘I/O和CPU开销,增加程序启动耗时 - 关闭预启动
Disable-MMAgent -ApplicationPreLaunch
减少cpu开销,增加程序启动耗时 - 跟踪文件数4096
Set-MMAgent -MaxOperationAPIFiles 4096
因为sysmain服务关闭后,操作api也被关闭了,所以设置最大跟踪文件数已经没有意义了
- 关闭内存压缩
- 关闭虚拟内存
- 日常使用跟踪