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
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
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.
Final Thoughts
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,
Richard
—
Thanks Richard. I was able to disable the Prefetch with no problem using your excellent directions You advise not to disable Superprefetch is you are using a “newer” SSD and have lots of RAM installed. Approximately how new is “newer”? Many thanks, Jack
Hi Jack,
Newer SSDs are those which are not as susceptible to deterioration due to tons of write operations. When that technological advance happened, exactly, is a fuzzy line, but I’d say anything made within the last five years is probably immune given that many SSDs these days come with three and five-year warranties. By the time the warranty expires you will probably be ready for that fancy, new, bigger, faster drive that you’ve been eye-balling anyway.
I am currently using what I would consider being an old 240GB SSD and it has over 34TBs (yes, terabytes!) of writes under its belt and is still chugging along just fine with no SMART errors at all! I do have Superfetch disabled on my system. (Most of this drive’s decidedly hard life was spent in a crypto-mining rig run by our very own eponymous Dave.)
The only way to know if Superfetch helps you is by experimenting. If you see no tangible evidence of improvement with it “on”, then disabling it makes a lot of sense. Run it for a couple of weeks or better before you make a decision since it will take some time for it to “learn” your habits.
If you’ve been running your system with SuperFetch enabled all this time, disable it and see what happens. If program load times are noticeably slower and overall system responsiveness suddenly becomes sluggish, then you know that SuperFetch has been helping you, in which case you might consider re-enabling it. Keep in mind that it will take a couple of weeks for SuperFetch to reclaim its “Superness”.
Hope this helps,
Richard
Hi Richard. I noticed this is NOT available for 8.1 Too bad.
But from your discussion about newer SSD’s, one important question comes to mind. Can or should you defrag a SSD now?
Seems life spans of 3 to 5 years rather short. Still using those mechanical drives as backups for over 10 years and they are very healthy (according to my monitoring software), Mindblower!
Hello Mindblower, Auslogics Disk Defrag has a special program for defragging SSDs. It does not optimize them. Don’t ask me what the difference is.
Auslogics says it is better for SSDs if you merely defrag them without optimizing them.
Does anyone know why?
Cheers,
JackB
Hi Jack,
Auslogics probably has many mechanisms in place to convince everyone that there is a difference between optimizing and defragmenting a drive. This is simply a matter of semantics and a marketing ploy. The only thing that makes sense is to manually TRIM your drive from time to time. I suggest once a week. Windows is supposed to take care of that automatically, but I have never seen it behave so well.
The bottom line is this: Do not run a defragmentation program on your SSD– period.
Hope this helps,
Richard
Thank you Richard. So, not matter on the age. defragmenting SSD’s is a NO.
Makes sense, as when I try to do a defrag on any SSD, using Wise Care 365, I receive a warning message “Disk defrag may reduce its lifespan. Are you sure to continue”. Other products might not post such a message. Hope users of SSD’s take this notice seriously, Mindblower!
Hi MB!
It is obvious to me that anyone who defragments a Solid State Drive does not understand what file fragmentation is nor do they understand how an SSD works.
I’ll say it again– never defragment an SSD. It is a futile exercise in that you will gain zero benefits, and it can also shorten the life of your drive.
A lose-lose proposition if I ever heard one,
Richard
Hello, Richard,
This is very helpful. But how do you manually TRIM your drive?
As you can see, I am a proud member of the Luddite club.
Thanks,
Jack B
Hi Jack,
There are two SSDs installed on my system and I run TRIM on both of them once a week.
Hope this helps,
Richard
Hi Richard,
One more post about Auslogics Disk Defrag. Then I’ll give this topic a rest.
I notice that this product is still recommended on Dave’s Software.
Someone might want to take a look at this recommendation and make up their own mind about whether the recommendation should be continued or qualified.
Best,
Jack
Hi Jack,
I have nothing against defrag programs– it’s the people who run them that seem to have a problem. Any defrag program worth its salt can be set up to not display SSDs in its drive list. Even the simplistic Defraggler has this ability.
At least Auslogics is smart enough to give you a warning before doing something silly,
Richard
The difference between defragment and optimize:
Defragmentation will simply make sure files are all in 1 contiguous chunk, accessible with 1 seek, rather than as many seeks as there are fragments.
But with absolutely no regard for where the file is, physically, on the HDD.
Optimization will then:
– Try to place files used to load a program, one after the other, in the order in which they are loaded
-Move the most often used of the above ordered file clusters to the outer, faster cylinders of the disk, and further order them in the order in which each program is loaded.
This is done using dat in the prefetch folder.
Now all the optimizations above are great for a spinning disk with a read head , but do nothing for a SSD.
The same can not be said for defragmentation however:
While the seek time of an SSD is orders of magnitude smaller than that of a HDD, it still has seek time….
( Around 0.1ms for a SATA SSD vs 12ms for a HDD)
Now a large, oft used file ends up in 10 000 fragments, it’s going to take 1 second to read it, rather than 0,0001 seconds…
Also a file system can only handle a set # of fragments. Any more would give errors.
So; MS does in fact occasionally and intelligently defragment, but not optimize, SSDs!
Other defragmenters have similar functionality.
(MyDefrag has proven to be the best/fastest (and free) HDD defragger in comprehensive benchmarks:
https://www.hofmannc.de/en/windows-7-defragmenter-test/benchmarks.html
This is all nicely explained, in detail, here:
https://www.hanselman.com/blog/TheRealAndCompleteStoryDoesWindowsDefragmentYourSSD.aspx
Interesting read
Hello,
There are (at least) two sorts of defragmentation :
– file by file : each file is written in one piece rather than several ones, where place is found to do so,
– optimized : the use of the disk is analyzed, to write together the files that are used together. The difference was spectacular when you created an OS floppy disk, either you wrote the files by chance, or in the order they are used at starting. With an HDD it makes a big difference too.
For file by file defragmentation, on Vista I use an old version of Auslogics Disk Defrag, that does not promote other softwares, comportment of new versions that led Malwarebytes to consider Auslogics as unwanted software. File by file defragmentation must be done frequently, specially on slow machines. As the user makes very short sessions, I let manually operated defragmentation, and display a message to remain that each time the machines goes out of standby. On Windows 10 I never had to wonder what software is used for the defragmentation.
For optimized defragmentation, on Vista I use Ultradefrag, when the machine begins to be slow despite the file by file defragmentation, so every few weeks.
Hello Richard,
I can see that I was not clear about my objection to Auslogic Disk Defrag and have to write one more post on this topic to correct a misimpression. I used the free, most current version of Auslogic Disk Defrag. (I say “used” because I have now uninstalled it.)
That version offered two options: to defragment and to optimize. It clearly recommended against optimizing an SSD disk.
It did not recommend against defragmenting an SSD disk. In fact, by its screens and prompts, it gave the impression that it is OK to do so. It also offered the TRIM option as an optional feature while defragging the SSD disk.
In short, there was no warning to the users that they were about to do something silly.
Best,
Jack
Hi Jack,
Well, that is unfortunate. I can only hope that people will read and heed warnings about not defragmenting SSDs,
Richard
Hi MB!
Never, ever, use a defrag utility on an SSD. I don’t care if they are new or old. It is simply a no-no and makes no sense to do so.
When you defragment an HDD it makes sense because you are moving stuff around on the platter to make it more accessible in a shorter time. An SSD is completely different in that the “controller” tells the drive where to put things. When you run a defragmenter on an SSD, it tells the controller where to put things but the controller doesn’t listen. Windows only sees what the controller allows it to see and that is not necessarily the reality.
I am not sure how to explain it correctly, but defragging an SSD is the wrong choice, and ultimately a fatal choice,
Richard
Hi MB!
Defragging an SSD makes no sense whatsoever. Period. It will ultimately damage the drive, even in small increments that may not be immediately noticeable.
Lifespans of five to ten years are normal for “spinners” once they get past the first year or so. In fact, records show that “spinners” tend to fail in their first year of life. After that, they seem to last forever– God bless them… I have drives (spinners) that seem to work just fine and they are over twenty years old! Amazing!
This wasn’t the case with SSDs a few years ago. Things have moved forward in recent times,
Richard
So, as I read, it is best not to defrag a SSD, as it has no use either to defrag a system backup to restore to the “out of factory” state (hum, can you help me find the word in English ?)
I also read that some people suggest to regularly TRIM a SSD.
Can you explain the difference between defrag an trim ? And the use of trim in this acceptation.
As I understand based on the sizes, my SSD is mirrored on a partition of the HDD. I imagine this changes nothing, I treat it as a SSD.
Hi Gloops,
I am guessing that the HDD partition is a factory recovery partition. It is intended to be used to bring the computer back to its factory default state, just like when you bought it. That means it is not a mirror copy of your current SSD– not by a long shot. Do not defrag this partition or tamper with it in any way.
Without getting too technical, defragging a hard drive is rearranging the files on the platters so they are contiguous and not scattered all around the disk(s). This speeds things up by reducing head “chatter” which has the side effect of prolonging the drive’s lifespan. I always recommend defragging a drive when it reaches 10% or so. If it takes more than 10- 15 minutes, then you’ve probably waited to run a defrag for too long.
TRIM is an operation that tells the drive controller to empty out the chips that no longer contain valid data. Unlike a hard drive, an SSD has to erase old data before it can write new data in its place. This takes extra time and “TRIMing” the drive helps. This is done automatically by the controller over time, but running it manually once in a while helps to make the process more efficient. Windows 10 is supposed to be able to schedule this operation, but my copy of Windows never does it even if I have it set to run weekly. It simply doesn’t work. Maybe my copy of Windows is buggy… in any case, that’s why I TRIM it every Saturday. It only takes a few seconds.
Incidentally, the reason I do it weekly is because my first SSD was an Intel and that was their recommendation at the time. I simply stuck with that figuring they knew what they were talking about.
Hope this helps,
Richard
My version of Windows must be buggy, too. It doesn’t TRIM, I have it set to weekly and see 16 days without optimization.
As for Aslogics, their best option can take hours(I tried it one time last year), so that could be bad for the drive. My Writes were climbing to the roof, ended up 10 T.B.s later of writes and performance didn’t change. 3 years and currently on 36.7 out of the rated 75T.B.s, so no biggie. Some videos with my same 850 EVO I have show that their drives are 200T.B. and still says “Good,” didn’t lose performance.
Hi Megaman,
Same here. If I don’t run TRIM manually, Windows never does.
—
Running a defrag operation on an SSD will not slow the drive down nor will it improve drive performance in any way, but it will lower the available number of writes effectively shortening the lifespan of the drive. And, you gain absolutely no benefit by doing so.
Richard
About Auslogics DiskDefrag …
As I already mentioned, this is a good defragmenting software, but recent versions tend to propose the installation of other software, and some safety sites signal this as … they say “unwanted software”, and by default they propose the disinstallation.
Using an old version can avoid this problem, although the safety sites do not necessarily deepen their analysis so far, so you risk a false positive either (false if the version is old enough).