SuperFetch is a new feature added into Windows Vista and all subsequent Windows versions including Windows 7, Windows 8, Windows 8.1 and Windows 10. SuperFetch enables frequently used files and programs to load faster by preloading and caching them into system memory. Prefetching in memory avoid situation where when computer idle, background tasks and processes such as automatic backup utility and antivirus scans run and take up system memory space that programs that users had been using, causing recently-used information been wrote to paged files, cached to disk or disposed from in-memory caches.

Thus when user want to resume work on these applications after a period of non-usage, there will be lengthy delays for system to load the applications again, slow the progress to a crawl. The answer from Microsoft to this problem in Windows is SuperFetch, which based on and enhanced from Prefetcher trace files technology (.pf) in Windows XP.

Other than keeping cache data in memory, SuperFetch monitors which are the frequently used applications and preloads them into system memory. It even keeps track of what times of day that applications are used, which allows it to intelligently pre-load information that is expected to be used in the near future.

The downsize to SuperFetch is that it takes memory, in fact, it uses lots of memory resource. In Task Manager, the svchost.exe that runs SuperFetch is always the one of the top memory usage process, as shown in figure below (see guide on how to identify what services running behind a svchost.exe).

svchost.exe running SuperFetch

In fact, SuperFetch is welcome addition to help speed up loading time when starting a program or resuming working on an application, provided if you have high end system specifications with tons of GBs of physical memory or RAM. In PC with little and barely enough system memory, SuperFetch will likely cause memory intensive textures to frequently swap in and out of memory and thrash to disk, slowing the overall performance, and in worst case, when using memory hogging software, causing out of memory crash error.

SuperFetch is enabled by default in every Windows installation. It’s hard to conclude for certain that turning off SuperFetch will make system faster or slower. You will have to try it out on your system, calculate your own benchmarks and decide for yourself if you should disable SuperFetch. If it works and improve system performance, it may be a complement among many ways to speed up Windows.

If you willing to give it a try, here’s the step to turn off and disable SuperFetch service in Windows. In fact, with the popularity of SSD as the replacement for traditional hard disk, the speed of reading from disk has been sped up tremendously and the computer is very much more responsive, making SuperFetch memory caching redundant or unnecessary.

Note
SuperFetch is not to be confused with Prefetch, which exists since Windows XP. Prefetch is a component of the Memory Manager that is intended to improve Windows and application startup performance by loading application data into memory before it is demanded, as the application is launched. SuperFetch improves Prefetcher by monitoring and adapting to application usage patterns over periods of time, and caching the majority of the files and data needed by them into memory in advance in order to accelerate the access speed and loading time.

How to Disable SuperFetch via Services.msc

  1. Go to Services console (type services.msc in Start Search or go to Control Panel -> System and Maintenance -> Administrative Tools and click on Services applet).
  2. Double click on SuperFetch (service name is SysMain).

    SuperFetch (SysMain)

  3. Choose Disable from “Startup Type” drop down list.
  4. Click or tap on Stop button if the service status is started in order to stop the SuperFetch instantly.

How to Enable SuperFetch via Services.msc

  1. Go to Services console (type services.msc in Start Search or go to Control Panel -> System and Maintenance -> Administrative Tools and click on Services applet).
  2. Double click on SuperFetch (service name is SysMain).
  3. Choose Automatic from “Startup Type” drop down list.
  4. Click or tap on Start button if the service status is stopped in order to start the SuperFetch instantly.

How to Enable or Disable SuperFetch in Registry

If you prefer Windows built-in setting to turn off SuperFetch instead of forcing the SysMain service to stop, change the following registry setting.

  1. Run Registry Editor (type regedit in Start Search).
  2. Navigate to the following registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

  3. On the right pane, double-click on EnableSuperfetch. If this registry value doesn’t exist, right-click the PrefetchParameters folder, then choose New -> DWORD Value.
  4. Assign the “EnableSuperfetch” one of the following values:

    0: Disable Superfetch
    1: Enable apps prefetching
    2: Enable boot prefetching
    3: Enable prefectching of everything (default)

  5. Close Registry Editor and reboot the computer.