Windows Vista's SuperFetch and ReadyBoost Analyzed

Conventional Windows Caching

Typically, PCs have between 512 MB and 2 GB of main memory today. Windows automatically allocates some space on the hard drive to swap main memory data when required. The file size of this so-called swap file typically is around 1.5 GB or larger. This ensures that all applications can be executed even if the PC has only little RAM, but if you compare the performance numbers of RAM and the swap file on the hard drive you will realize that swapping has a huge negative impact on performance of your memory subsystem.

You might be aware that all Windows operating systems have a built-in caching mechanism. It is not very sophisticated and basically keeps application data in the main memory after program termination. This results in noticeably shorter application launch times in case the user decides to restart the program she or he has just terminated. But Windows caching has its limits, as all cached data will be lost when you shut down the PC. Launching other applications will also flush all cached information to make the main memory available to the active programs.

Windows caching is efficient if you work with a limited number of applications on a regular basis. If you e.g. open and close Microsoft Office several times per day, it will launch much quicker as you start it the second time. However, launching other applications might flush the cached data. Also, Windows 95/98/2000/XP isn't intelligent enough to restore cached data if you shut down and restart your machine. After a reboot, the main memory will remain in a so-called cold state. Even if you have 2 or 4 GB of main memory, this available resource will not be used unless an executed application requests memory.

SuperFetch, The Über-Cache

SuperFetch does more than caching. Windows Vista runs a SuperFetch service that analyzes your application behavior and usage patterns, meaning that it tracks which applications you request the most. A good example would be your activity as you start the PC in the morning: You launch Outlook to fetch email, a messenger, a web browser and probably additional applications such as a development environment. If you do this repeatedly and ideally in the same order, SuperFetch will recognize this and then proactively populate these applications into all available main memory the next time you start the PC. You should only wait for a few minutes before you commence work to give the SuperFetch service the time to "superfetch" your applications.

The result is simple and impressive: As you return from your coffee run and launch your applications, they are available much quicker, as they already populate your main memory. Similar to conventional Windows caching, SuperFetch will not touch its cached data unless there is an application that requires main memory space. Windows will not prioritize the SuperFetch feature over memory requests by applications, as this would cause the memory management to swap data onto the swap file, which of course would slow down the whole system considerably.

Simply spoke, SuperFetch tries to relocate application data from the slow hard drive into all available memory. It utilizes the available capacity to create a so-called warm memory state for the single purpose of making applications available almost instantaneously. However, SuperFetch needs a certain amount of main memory. At only 512 MB RAM size, the feature won't be very efficient, as Windows plus 2-3 applications will already eat up the total memory capacity. There won't be main memory space left to pre-cache application data. If you don't work with multiple applications at a time, 1 GB should be enough to see a positive impact of SuperFetch when compared to Windows XP. However, we experienced the best results at a main memory capacity of 2 GB - more won't hurt either.

Many installed PCs are technically capable of running Windows Vista properly, but they might only have 512 MB or 1 GB of memory. Microsoft came up with a way to expand the RAM capacity without having to install more physical DRAM.

  • Trashing the harddrive every time you close a big app... to load in a bunch of "guesses", that get thrown out and over written by the next big app you load, is a waste of resources and puts 2 times the wear and tear on your harddrive.

    Think about it. You have a house. You move in some furniture. You don't like the furniture, so you take it out. While you are deciding what next to put in, a little magic fairy guesses what furniture you might like, buys it on your credit card, and pays movers to move it in.

    You're still at the store, you finally decide what furniture you want... you buy it, pay movers to deliver it, and find your house full of crap furniture you didn't want that the fairy guessed you wanted. Maybe he got it right, but more than likely he got it wrong. You have to throw out this furniture, which takes a little time, and then move in your furniture.

    It would of been cheaper and faster if the magic fairy had done nothing and left your house empty until you decided what next you wanted to do.

    This happens over and over, every time you close one app, and open another.

    If you are grandma and have lots of ram you're not using, because all you do is run wordpad and one IE window, superfetch works great. Wooo, look, paint just opened right up. But if you are a power user who pushes their ram to the limit all the time and has fifty million windows open... or a laptop user on batteries... superfetch sucks ass and should be disabled.

    Power users, do the right thing, shoot the fairy and take back your credit card.