Control SuperFetch in Windows Vista
Although many people complain that Windows Vista is a lot slower than Windows XP, this does not need to be the case. A lot has to do with your system’s configuration. Depending on your PC specifications for example, you might need to disable some of the graphical enhancements. On the other hand, Windows Vista has quite a few improvements that actually help speed up the overall performance.
One of these improvements in Windows Vista is called SuperFetch. This feature can really speed up Windows Vista. The basic concept is that applications and files are loaded faster as a result of an advanced caching mechanism.
SuperFetch can speed up Windows Vista, but it does consume computer resources: memory, CPU and disk. So it is good that we can execute some control over the feature and tweak it to our preferences. The steps below show you how you can control what SuperFetch does:
- From the Windows Start menu, select Run.
- In the Run box, type regedit and click OK.
- In the Registry Editor, locate the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- Right-click the entry named EnableSuperFetch, and in the popup menu select Modify.
- Next, specify what SuperFetch should do:
- To completely disable the SuperFetch feature, enter the value 0.
- To optimize only application startup, enter the value 1.
- To optimize only the computer startup process, enter the value 2.
- To optimize both application startup and the computer startup, enter the value 3.
- Close the Registry Editor. Select Exit from the File menu.
When done, click OK.
Use this control over Windows Vista SuperFetch to tweak the caching operation and maximize your computer performance. If you have sufficient memory, setting 3 will give you best performance. If you do not have that much memory in your system and need the memory for executing applications, you can experiment with setting 1 and 2 to determine what works best for you.
More details:
Installing more RAM is not an option for me – neither the motherboard nor 64-bit Vista Home Premium will accept more than the 8 GB I already have.
I checked the Windows Live Mail helpfile equivalent. It now seems to have dropped anything related to the newsgroups feature of WLM.
I delayed implementing that because a program that I run nearly 24/7 seems to NEED the full SuperFetch function, and I’ve been busy for months on other problems. However, I finally got the idea of disabling SuperFetch just long enough to get the Windows Live Mail program to compress its database – something I haven’t been able to do since its main index file grew beyond half the size of the installed RAM due to heavy newsgroups use. WLM wouldn’t even run at a reasonable speed once that index file grew beyond the full size of the installed RAM. When I tried disabling SuperFetch, it seemed to work but with little help for WLM – it would then run but rather slowly. Also, the 2011 version of WLM seems to have dropped or hidden any user access to controls for how often its database is compressed.
@Robert Miles – The best location would be the Microsoft development sites (technet and msdn).
If the described registry setting does not work for you, simply try stopping the SuperFetch service in the service manager (right-click Computer in the Start menu and select Manage in the popup).
Where can I find information on ALL the registry variables controlling the SuperFetch function of Windows Vista? My three computers are behaving like at least one of the registry variables controlling SuperFetch are set wrong, probably not including the one for turning it off entirely. Microsoft seems to that that no one with the Vista Home Premium version of Vista needs this information, and seems to have gone out of their way to make it hard to find – for example, not even mentioning it it their help files. My computers behave like SuperFetch fills up the spare memory as it should, but is then very slow at releasing the memory it uses when something else needs it – essentially making it seize control of around half the physical memory and hold on to it even when some 32-bit program needs it. I’ve done a Google search for SuperFetch and turned up little of interest – only enough to indicate that several registry variables are involved, with very little indication what most of their names are and what the allowed values for these registry variables are. 64-bit programs are better at getting SuperFetch to release memory when they need it.
Windows 7 SuperFetch Registry Change Can Be Found In This Location (Key)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Same place.. Same changes.. Looking for Prefetcher FAQ..
Great tip. After I reading this article, I try it on my laptop. I like to optimize only the computer startup process by enter the value 2 in registry. I feel windows is start up faster and not impact the processing while working.
@Magnus – The memory usage is very dynamic. Vista will use free memory for caching, so applications can start faster. But if memory is needed, Vista will dump some of the cache to free up memory.
As a result, you can not really go by the hard numbers shown in the Task Manager.
Your internal RAM is really available to applications when needed.
Regarding SuperFetch it is better to look at the performance difference with the different settings.
Hope this addresses your concern.
Anthony
Well it seems to work a little bit, now i have 553mb Free momory, but cant i get any more?
Do i really need 4433mb Cached memory?
Hi
I cant get this working. I changed it into “2”
But it does not work.
I have Vista Ultimate with 6gigabyte of DDR3-ram
After changeing it to “2” i tryed reboot my computer. But when Windows started i had 2000Cached memory and 3000Free memory. After a wile(5min) all my Free momory had been cached memory. So now i have 5GB of cached memory and 0mb free memory.
Anyone have any tip? Thanks Magnus
(Sorry my bad english)
Thanks for the tip!
If only we could tel Vista which applications to prefetch, that would be even better…
This is a great idea. I prefetch just startup
and vista runs much better. The whole prefetch idea just slows down my computer too much.
Vista really takes to long to do anything.