In this article, we will see how Windows 10/8/7 treats Prefetch and SuperFetch on Solid-State Drives. Yesterday we saw how Windows treats Defragmentation on Solid State Drives. Before we start, let me make it clear that it t is not a good idea to disable SuperFetch (Now called SysMain) or Prefetch as it may degrade system performance. Leaving these services to their default settings is best.
SuperFetch/SysMain, Prefetch & SSD in Windows
Every time you run an application in your PC, a Prefetch file that contains information about the files loaded by the application is created by the Windows operating system. The information in the Prefetch file is used for optimizing the loading time of the application the next time that you run it. SuperFetch attempts to predict which applications you will launch next and preloads all of the necessary data into memory. Its prediction algorithm is superior and can predict which next 3 applications you will launch by what time in a day.
In short, SuperFetch and Prefetch are Windows Storage Management technologies that provide fast access to data on traditional hard drives. On Solid State Drives, they result in unnecessary write operations.
The SysMain service is the one that is related to Superfetch. Its job is to maintain and improve system performance over time. It is found in the System32 folder. The Services is the same, but the Display name for it has been changed in Windows 10 from Superfetch to SysMain.
Should one for some reason need to manually disable them, this is how one can disable SuperFetch. Run services.msc to open the Services Manager. Scroll down to SysMain (Superfetch) service, which is responsible for maintaining and improving the system performance over time.
Double-click on it to open its Properties box. Click on Stop to stop the process. Make the startup type Disabled and click on Apply.
You will have to restart your computer for the system changes to take effect.
To disable Prefetch in Windows, Run regedit to open the Registry Editor. Navigate to the following registry key:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters
Double-click on EnablePrefetcher on the right side to open its DWORD value box.
The possible values for EnablePrefetcher are:
- 0 – Disable Prefetcher
- 1 – Application launch Prefetching enabled
- 2 – Boot Prefetching enabled
- 3 – Application launch and Boot Prefetching enabled
The default value is 3. To disable Prefetch, set it to 0. Click OK and Exit.
Incidentally, you can also disable or tweak the Suoerfetcher here – you will see the EnableSuperfetcher DWORD just below it.
The possible values for EnableSuperfetch are:
- 0 – Disable Superfetch
- 1 – Enable SuperFetch for boot files only
- 2 – Enable SuperFetch for applications only
- 3 – Enable SuperFetch for both boot files and applications
If you are a Solid State Drive user, you may want to read about the freeware SSD Life that can check the health of your Solid State Drive and SSD Tweaker which will help you tweak your Solid State Drives.