In a previous post we looked at the SuperFetch caching utility that pre-fetches data into RAM in the attempt to speed performance and reduce the bottleneck of slow disk reads.
The habitual tinkerers will naturally wonder what can be done to optimise SuperFetch itself. You can play with what limited options there are, but as a general recommendation, unless you have a fast RAID (multiple linked hard disk array) or Solid State Drive (SSD) in your machine, then don’t mess with it…
Comments culled from various technical documentation:
“In Windows 7, SuperFetch is automatically enabled for disks that have a low Windows Experience Disk Score and disabled for disks that have a high score. During performance testing, you should use the default SuperFetch setting because it represents actual end-user experience. SuperFetch adds the pre-fetched pages to the system’s standby page list, which has been reorganized and redesigned to retain useful data in memory over longer periods of time. Both Windows 7 and Windows Vista set priorities for pages on the standby list so that historically important pages remain in memory and less frequently used pages do not. For example, the pre-fetched pages of a frequently used program have a higher priority than those of a recently copied file that might not be used again.”
(Performance Testing Guide for Windows)
“If the system disk is an SSD, and the SSD performs adequately on random reads and doesn’t have glaring performance issues with random writes or flushes, then SuperFetch, boot pre-fetching, application launch pre-fetching, ReadyBoost and ReadDrive will all be disabled.”
(Engineering Windows 7 – Support and Q&A for Solid-State Drives)
That said, if you are determined to see how SuperFetch affects performance, then go ahead. There’s no evidence that disabling it can damage the PC – it’s only a caching program after all.
To Disable SuperFetch, you can disable the service.
- Open a Windows Run box (press the Windows + R keys) and type:
- From the list of loaded services, double-click on the SuperFetch service
- In the options, set Startup type to disabled
- Stop the service or reboot the machine.
Performance with SuperFetch Disabled
What I found on a limited test:
- Boot times lengthened dramatically. Add 50-75% extra boot time.
- Startup performance of Office applications dropped. Outlook 2010 was noticably slower to start and to navigate between folders.
You may have more RAM free, but it’s sitting idle and not being actively managed and utilised.
Modifying the SuperFetch Cache
After you re-enable it, you might want to play with the settings.
- Run the registry editor (keeping in mind that changing and deleting registry keys can be akin to stepping on a Windows land-mine) by typing regedit in the search bar of the Windows Run box and press Enter.
- Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- If you’re going to change these, you need to match the key values for the key pairs “Enable SuperFetch” and “Enable Prefetch”.
- Double click on “Enable SuperFetch”.
Acceptable values for this key are:
0: Disable SuperFetch
1: Cache applications only
2: Cache boot files only
3: Cache everything (default)
- You need to match the key values for the key pairs The options are the same for both, so if you set “Enable SuperFetch” to “2″, set “Enable Prefetch” to “2″.
- Choose the option you want and restart the machine.
The re-boot may be slower as the changes take effect.
Although you can manually flush your pre-fetch folder (C:/Windows/Prefetch) in order to start with a new cache after changing the registry settings, you may get into a tug-of-war with SuperFetch instantly trying to refill it!.
Spinning Rusty Metal vs. SSD
SuperFetch knows the difference between a conventional spinning platter, mechanical hard drive and a solid state disk. Windows doesn’t disable the SuperFetch service when you install an SSD, nor would you want it to, especially if you have both an SSD and a hard drive. What it does is disable pre-fetching from the SSD. If you have only an SSD, then SuperFetch goes into a quiet state, sitting there as a dormant service – you can disable the Service in Windows. AJS