Tip 35: Speedup and Slowdown using PreFetch, Disable it or view pre-fetched files

Compared to its predecessors the speed at which Windows XP starts up could almost be said to be "supersonic". Some of this speed is the result of a new technique called "prefetch". The memory manager module of XP includes a prefetcher component that runs at system startup and fetches commonly used programs to speed their execution. Prefetch is a new and very useful technique in Windows XP.

You can increase speed by tweaking prefetch settings.

This is a unique technique for XP, which could improve the performance significantly by tweaking the prefetcher. Recommended hardware: PIII 800 or higher, 512M RAM or more.

  1. Add or change the following registry values:
     
    Hive: HKEY_LOCAL_MACHINE
    Key: SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
    Name: EnablePrefetcher
    Type: REG_DWORD
    Value: 0-Disable
    Value: 1-App launch prefetch
    Value: 2-Boot Prefetch
    Value: 3-Both ("3" is recommended)

  2. reboot.

It will decrease the boot time but double and increase the performance of your XP. Try it!

However, after using XP some time, the prefetch directory can get full of junk and obsolete links in the Prefetch catalog, which can slow down your computer noticeably. XP creates a <%Systemroot%>:\prefetch folder to store files with a .pf extension that correspond to the files the OS prefetches at system start-up. These files are in the format <filename>&-<ID>.pf (e.g., frontpg.exe-2F398878.pf indicates that XP is prefetching Microsoft FrontPage at start-up).

To prevent the OS from prefetching a file, you simply delete entries from this folder (e.g., to stop XP from prefetching outlook.exe, delete the filename that starts with outlook.exe). I recommend that you clear items from this folder once a month to remove obsolete entries.

It could be worthwhile cleaning prefetch data once a month. To do so, go to

<%Systemroot%>:\prefetch, delete everything in it and reboot. This may help speed up your computer.

On the other hand, this PreFetch component slightly increases the amount of time to start the OS. Although Microsoft doesn’t recommend disabling the prefetcher, you can disable this component (e.g., for troubleshooting purposes or to speed boot time) by setting the registry entry EnablePrefetcher (see above) to a value of zero, ie. disable.

When you reboot the system, the prefetcher won’t execute. EnablePrefetcher actually consists of two values:

  • 0x00000001 = Application launch prefetching
  • 0x00000002 = Boot prefetching
XP uses an AND statement to join these values; hence the Prefetcher default value is 3 because XP enables both application launch prefetching and boot prefetching.

If you are not comfortable editing the registry, you can use this freeware program called Windows XP Prefetch Clean And Control 1.2.0 that does it for you.