Superfetch

In Windows Vista and earlier versions of Windows 10, you may have come across a service running in your task manager called Superfetch. In the latest version of Windows 10, it has had a name change and is now called the Sysmain process. Superfetch is a Windows system process that is really quite handy and can help speed things up a little. Your Windows system does this by storing information about commonly used programs within RAM so that they can load quicker and more smoothly the next time you open them.

The Superfetch process runs in the background and keeps an eye on the programs that are frequently loaded to RAM. It will identify the pattern and then marks these apps as “frequently used” and preloads them into RAM in advance. So, when you run these apps they will launch much more quickly as they are already preloaded in memory and do not have to be fetched from HDD. Also, it only uses unused memory. No sooner than your system requires some more memory, it releases the needed RAM space. For a large program like games, it doesn’t work all that well and the performance isn’t quite good as usual.

Although SuperFetch is mostly useful and runs smoothly, it may cause some issues and you can question whether it is even really needed:

  • System startup can slow down because the process is preloading a chunk of data from your HDD to RAM.
  • When Windows 10 is installed on an SSD the benefit of SuperFetch may not be apparent. This is because SSDs are so fast that preloading is not actually required.
  • It can also cause performance issues while playing games that are RAM-heavy, especially on machines that have 4GB of RAM or less.

So, the question is, is the Superfetch/ Sysmain process required or is it is ok to disable it? The Answer is Yes, you can turn it off without worrying about any risks. If your machine is running smoothly, leave it on. However, if you have issues with high HDD/RAM usage, then disable SuperFetch and check if it helps. If there are any noticeable performance gains keep it off. Otherwise, enable it again.

How to Enable or Disable SuperFetch in Windows

There are a number of ways you can Enable and Disbale the Superfetch/ Sysmain process

Disable from Services

  1. Hold the Windows Key, while pressing “R” to bring up the Run dialog box.
  2. Type “services.msc“, then press “Enter“.
  3. The Services window displays. Find “Superfetch” in the list.
  4. Right-click “Superfetch“, then select “Properties“.
  5. Select the “Stop” button if you wish to stop the service. In the “Startup type” dropdown menu, choose “Disabled“.

Enable or Disable from Registry

  1. Hold the Windows Key, while pressing “R” to bring up the Run dialog box.
  2. Type “Regedit“, then press “Enter“.
  3. The Registry Editor window appears. Navigate to the following location in the Registry.
    • HKEY_LOCAL_MACHINE
    • SYSTEM
    • CurrentControlSet
    • Control
    • Session Manager
    • MemoryManagement
    • PrefetchParameters
  4. On the right side, double-click on “EnableSuperfetch“. If this value doesn’t exist, right-click the “PrefetchParameters” folder, then choose “New” > “DWORD Value“.
  5. Give “EnableSuperfetch” one of the following values:
    • 0 – to disable Superfetch
    • 1 – to enable prefetching when program is launched
    • 2 – to enable boot prefetching
    • 3 – to enable prefectching of everything
  6. Select “OK“.
  7. Close the Registry Editor.

Note: If you disable Superfetch and would like to enable it for certain applications, you can use the special switch in the program shortcut: /prefetch:1

Disable SuperFetch using Command Prompt

  1. Run the command prompt as administrator.
  2. To disable SuperFetch copy and paste the following command and press Enter.

sc stop “SysMain” & sc config “SysMain” start=disabled

  1. If you want to enable SuperFetch again, copy and paste the following command and press Enter.

sc config “SysMain” start=auto & sc start “SysMain”

  1. Now close the command prompt window.

Disable SuperFetch using PowerShell

  1. Run PowerShell as administrator.
  2. To disable SuperFetch copy and paste the following command and press Enter.

Stop-Service -Force -Name “SysMain”; Set-Service -Name “SysMain” -StartupType Disabled

  1. If you want to enable SuperFetch again copy and paste the following command and press Enter.

Set-Service -Name “SysMain” -StartupType Automatic -Status Running

  1. Now close the PowerShell window.

Leave a Reply

Your email address will not be published. Required fields are marked *