Superfetch and SysMain

Last modified:

Superfetch and SysMain

Tech enthusiasts often recommend disabling Superfetch or SysMain. SysMain does slightly more than just Superfetch, so I wouldn't be too quick to disable it completely.

Superfetch

Superfetch loads things in memory it thinks you will need. If you don’t need it, no harm done. Apps tend to start as fast as without Superfetch or faster. It loads things in RAM you are not using, and at a low priority so that other processes can override that RAM when needed. So it does not steal the RAM from other tasks. Although it does use other computer resources to preload it in the first place.

Superfetch usually has small performance gains when running on an HDDs. Aside from consuming more battery, it shouldn't do much harm. Although you may not need it. If you want to disable it for performance gains, it can often do the opposite.

SysMain

SysMain allows the computer to use Superfetch and to do memory compression. Your RAM usage will likely increase when you disable this service.

Disable or not?

For most people it does no harm, and the default setting should be fine. If it does harm then it could be that something else is causing the harm. Although at that point you may consider disabling it.

On SSDs I would disable prefetching. SSDs are fast enough, and it causes more writes. Usually windows does disable this automatically on SSDs. Memory compression and other features can stay on.

# Disable prefetching
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" -Name "EnablePrefetcher" -Value 0

It may seem odd that it uses much RAM, but the above description explains why it does. It is not too harmful. Consider reducing the CPU that Windows Defender uses first. You can find more information about that in my "Windows security" article.

Share

Diaspora X Facebook LinkedIn

Donate