How to Enable or Disable SuperFetch (SysMain) in Windows
SuperFetch (aka: Memory Prefetcher) is a service that was introduced with Vista.
SuperFetch is an enhancement of the Prefetcher from previous versions of Windows. The Prefetcher is in charge of storing program information so that often-used programs and processes can run faster.
SuperFetch keeps track of which applications you use most and loads this information from the hard drive into RAM so that programs load faster than they would if the hard disk had to be accessed every time. Windows SuperFetch prioritizes the programs you’re currently using over background tasks and adapts to the way you work by tracking the programs you use most often and pre-loading these into memory. With SuperFetch, background tasks still run when the computer is idle. However, when the background task is finished, SuperFetch repopulates system memory with the data you were working with before the background task ran. Now, when you return to your desk, your programs will continue to run as efficiently as they did before you left. It is even smart enough to know what day it is in the event you use different applications more often on certain days. Basically, SuperFetch attempts to predict which applications you will launch next and preloads all of the necessary data into memory.
Sometimes SuperFetch may cause high disk usage.
If you run Windows from a SSD or M.2 instead of a slow spinner hard drive, then you may not see any performance gain from SuperFetch to justify the drive usage from it.
If you like, you could disable SuperFetch to see if you have any performance gains with it enabled or disabled.
This tutorial will show you how to enable or disable SuperFetch (SysMain) in Windows 7, Windows 8, and Windows 10.
You must be signed in as an administrator to enable or disable SuperFetch.
This will affect:
- Prefetch
- SuperFetch
- RAM compression
- ReadyBoost
Contents
- Option One: Enable or Disable SuperFetch in Services
- Option Two: Enable or Disable SuperFetch in Command Prompt
- Option Three: Enable or Disable SuperFetch in PowerShell
1 Press the Win + R keys to open Run, type services.msc into Run, and click/tap on OK to open Services.
2 Double click/tap on the SysMain service. (see screenshot below)
Starting with Windows 10 build 17763.1, the SuperFetch service has been renamed to SysMain.
3 Do step 4 (enable) or step 5 (disable) below for what you want to do.
This is the default setting.
A) Change the Startup type to Automatic. (see screenshot below)
B) Click/tap on the Start button.
C) Click/tap on OK, and go to step 6 below.
A) Click/tap on the Stop button.
B) Change the Startup type to Disabled. (see screenshot below)
C) Click/tap on OK, and go to step 6 below.
6] You can now close Services.
1 Open an elevated command prompt.
2 Do step 3 (enable) or step 4 (disable) below for what you want to do.
This is the default setting.
A) Copy and paste the command below into the elevated command prompt, press Enter, and go to step 5 below. (see screenshots below)
sc config "SysMain" start=auto & sc start "SysMain"
A) Copy and paste the command below into the elevated command prompt, press Enter, and go to step 5 below. (see screenshots below)
sc stop "SysMain" & sc config "SysMain" start=disabled
5 You can now close the elevated command prompt.
1 Open an elevated PowerShell.
2 Do step 3 (enable) or step 4 (disable) below for what you want to do.
This is the default setting.
A) Copy and paste the command below into the elevated PowerShell, press Enter, and go to step 5 below. (see screenshots below)
Set-Service -Name "SysMain" -StartupType Automatic -Status Running
A) Copy and paste the command below into the elevated PowerShell, press Enter, and go to step 5 below. (see screenshots below)
Stop-Service -Force -Name "SysMain"; Set-Service -Name "SysMain" -StartupType Disabled
5 You can now close the elevated PowerShell.
That's it,
Shawn Brink