Many new and exciting features were added when Windows XP was envisioned and Prefetch was one of them. There were no Solid State Drives (SSDs) available at the time and we were all stuck with relatively slow Hard Disk Drives (HDDs), aka, spinners. The differences between how Prefetch and Superfetch work seems to be a source of confusion for many so this week’s Quick Tips article will try to clear the muddy waters for you.
Prefetch vs Superfetch
Prefetch and Superfetch are two very different methods with the same goal in mind– to speed up your computer by storing information on your drive and by trying to anticipate what you will want to run next.
Prefetch is an algorithm which attempts to speed up boot times and application load times by storing pertinent file-specific information in a Prefetch folder in the Windows directory. All these files have a PF extension. An old argument existed at one time that you could delete these files from time to time with the idea in mind of ultimately speeding up your computer by ridding your drive of outdated information. Whether this actually benefited the system is up for debate but on older systems with slower hard drives, I would say that it might have actually helped as long as it wasn’t done too often. Probably about once a month would have been a good time-frame depending on how much you used your computer during that period. If you delete those files, then Windows will have to rebuild them, albeit different ones, and during this period things may actually slow down for a short time.
Superfetch is an entirely different animal. Yes, it still stores information on your drive, but it does so much more than that. It basically watches your computing habits and preloads programs and files into memory that it thinks you will be using soon. It even keeps track of what days you use certain programs in order to fine-tune these predictions. Running programs from memory is way faster than loading them from a drive, even an SSD. The difference is like trying to compare apples and oranges– they are on an entirely different plane of existence.
Enable Or Disable? That Is The Question…
If you are running your system on an HDD, then the answer is a no-brainer– leave them both enabled. Their Registry entries should both hold the Value of “3” and I’ll show you how to do that in a minute. Here are some basic rules of thumb:
- If you are using an SSD as your primary system drive, then I would tell you to disable the Prefetcher and maybe Superfetch, too
- If you are using an older SSD which is more susceptible to a shorter life span due to disk writes, then disable both features
- If you are using a newer SSD and have lots of RAM installed, then it might be better to keep Superfetch alive
Note: I have an older SSD and 32GB of RAM installed. I have both Prefetch and Superfetch disabled on my system mainly because I don’t notice any improvement with them enabled and I want as few writes as possible going to that long-in-the-tooth SSD.
If you are using an SSD, you will only know if these settings help or hinder your computer by experimenting. It will be a by-guess-and-by-gosh experience. You won’t hurt anything by trying and the settings for both Prefetch and Superfetch are easily changed. (You will have to reboot your computer after each change for the new settings to take effect.)
Getting To The Setting
[message type=”warning”] Standard Registry Editing Warning: The following instructions will ask you to edit your Windows Registry. Be sure to make a backup of your Registry before you make any changes. Making mistakes in the Registry can cause hard-to-diagnose problems, or even keep Windows from functioning properly. If you don’t know how to back up your Registry, please read Windows Quick Tips – Backup/Restore Registry. [/message]
- Use the Windows key + R to open a Run box
- Type regedit and hit Enter
- In the Registry Editor, follow this path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
That should bring you to a window similar to this one:
In the above image, both the Prefetch and Superfetch settings have a Data value of zero (0). That is because I have them disabled on my computer. The available settings for both are as follows:
- 0 – Disabled
- 1 – Application prefetching enabled
- 2 – Boot prefetching enabled
- 3 – Application and Boot prefetching enabled
To change a setting, simply double-click on the Value Name and enter the new Value Data:
You will have to reboot your computer for the changes to take effect.
The Superfetch Snag
Since Windows v1803 (I think) there was a change made to the Services. There used to be a service called Superfetch but it now goes by the new moniker of SysMain. The reason I mention this is that sometimes the above Registry setting doesn’t “stick” when trying to disable Superfetch. To get around this snag you will have to open Services and disable Superfetch from there:
- Use the CTRL + SHIFT + ESC buttons to open Task Manager
- Click the Services tab
- At the bottom of the window, click the link labeled Open Services
- In the Services Manager, drill down until you see the entry labeled SysMain and double-click on it
- In the Properties sheet that opens, click the Stop button if the service is running
- In the drop-down menu, choose Disabled
- OK your way out of all the windows
It should look something like this:
You will once again have to reboot your computer for the changes to take effect.
Tinkering with these settings may or may not give you noticeable improvements in system responsiveness– you will only find out by trying and your results may vary. If nothing else, you will have the satisfaction of knowing that your poor SSD is no longer being pounded by incessant disk writes and that’s gotta be a plus. For this same reason I disable Search Indexing, too; it simply isn’t needed on a fast SSD and can actually slow things down.
As always, if you have any helpful suggestions, comments or questions, please share them with us,