EnablePrefetcher in PrefetchParameters
I remember that several tweaking programs that emerged after the release of Windows XP changed the EnablePrefetcher preference in the Windows Registry claiming that disabling Prefetcher would improve the application load performance on the system.
It appears that the tip is often found in speed up your PC top lists and even computer magazines have published it so that their readers probably made the change on their home systems as well.
I was astonished to read this tip in a well respected magazine and would like to use this article to give you options to undo the change since it will have the contrary effect.
You can find the current EnablePrefetcher value in your Registry. To get there press the Windows and R key at the same time. This opens the run box that you can use to launch programs from. Enter regedit here and tap on your enter key on the keyboard afterwards.
You may get an UAC prompt which you need to accept depending on security policies and the user level.
Navigate to the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters. The default value for the string should be 3 which means that prefetching is enabled for application launch and boot.
Other values are 0 for disabling prefetching, 1 to enable it for application launch only and 2 to enable it for boot only. The optimal setting is the default one which is 3.
Setting EnablePrefetcher to a value above 3 has no effect at all. Even systems with low RAM should keep the default setting of 3 because they actually do benefit from prefetching.
My suggestion would be to check the Registry key on your system to make sure that the value is set to 3. If it is not change it to 3 and you will probably notice speed improvements.
The only situation where prefetching or superfetching can be disabled is when you have a Solid State Drive in your computer as they do not benefit from it. If you use platter based hard drives, keep the default levels as you may notice reduced speeds otherwise.
One observation – values above 3 will be equivelant to valid values. The registry entry is used to independently control both boot and application prefetching. The result is obtained by ANDING bits 0 and 1, for a maximum value of 3. Setting a value over 3 will set bits 2 or 3 which are undefined. Microsoft has always warned that this paractice is dangerous.
The equivelant values are as follows:
4 = 0
5 = 1
6 = 2
7 = 3
8 = 0
9 = 1
It should also be added that “cleaning” or deleting the contents of the prefetch folder will impair performance. It is based on a complete msunderstanding of how prefetch works.
Proper prefetch operation requires that the Task Scheduler service be enabled and set to Automatic. Otherwise prefetch will be crippled, leading to impaired performance.
I found that on server 2003 the option is set to 2, and changing to 3 if you have a backup power supply should be safe, and improves performance, at least on my test system.
I mean the default is 2 obviously.