Linked by Thom Holwerda on Mon 11th May 2009 20:43 UTC
Windows SuperFetch is a technology in Windows Vista and onwards that is often misunderstood. I decided to delve into this technology to see what it is all about, and to dispel some of the myths surrounding this feature.
E-mail Print r 3   · Read More · 79 Comment(s)
Thread beginning with comment 362995
To view parent comment, click here.
To read all comments associated with this story, please click here.
Thom_Holwerda
Member since:
2005-06-29

Once a cache of a large amount applications has been built up after a reasonable amount of usage (which is where the 'myth' that this gets worse over time comes from) that hits the limit of your installed system RAM then you really start to see the effect of memory management and paging happens as things get moved around. This is why you need several gigabytes of memory to make it work.


You are mistaken. Data cached by SuperFetch NEVER gets paged. Once cached SuperFetch memory is needed by something else, it's just "deleted", and that's it. It is NOT written back to the pagefile.

I have yet to see that this is anything other than a another pointless technology by Microsoft to expand memory requirements in a pretty pointless way.


Yes, because venerable sites like Tom's Hardware and AnandTech, who both call SuperFetch a a tremendous performance booster, are all lying, and I should definitely trust you more than I should trust them.

Or my own worthless perceptions, of course ;) .

Reply Parent Score: 4

lemur2 Member since:
2007-02-17

You are mistaken. Data cached by SuperFetch NEVER gets paged. Once cached SuperFetch memory is needed by something else, it's just "deleted", and that's it. It is NOT written back to the pagefile.


This is correct. A pre-loader is "speculative". It pre-guesses which data might be useful later, and during idle moments of the system the pre-loader loads such data into RAM which is spare at the time.

If the system actually needs that RAM for a real use, then the pre-loader's speculation was in vain, and the pre-loaded data is simply overwritten. It is treated as if that RAM was never allocated at all, and was still spare.

Reply Parent Score: 2

segedunum Member since:
2005-07-06

You are mistaken. Data cached by SuperFetch NEVER gets paged. Once cached SuperFetch memory is needed by something else, it's just "deleted", and that's it. It is NOT written back to the pagefile.

You miss the point. No, when you cache and preload it doesn't get paged - it is merely cached and overwritten. We're ignoring disk caching there though so it was a poor choice of the word 'paging' on my part. The point still stands however that you need a reasonable level of free memory to make caching work, and especially when you have a service on top that is constantly trying to maintain that cache at an even keel. When you hit memory limits, as many more people do when they run a desktop and memory intensive applications, then some strange things can happen. The free memory isn't there to make it work because caching and prefetching is all about putting free memory to work. That's why we've ended up with things like ReadyBoost tacked on.

Yes, because venerable sites like Tom's Hardware and AnandTech, who both call SuperFetch a a tremendous performance booster, are all lying, and I should definitely trust you more than I should trust them.

Tom's Hardware and Anandtech both confirm what I've said - you need lots of free memory over and above the applications that you use and if you don't you need to boost it with ReadyBoost. As they say:

Anandtech:

"While it's very difficult to benchmark the impact of SuperFetch well, in our usage of Vista if you have enough memory it is a tremendous ally. Honestly SuperFetch is the biggest reason, in our opinion, to move to the x64 version of Vista so you can use even more memory."


Tom's:

"You should only wait for a few minutes before you commence work to give the SuperFetch service the time to "superfetch" your applications."

That is not a free operation by any stretch. Hmmmm, let me see. Do I start work immediately, fire up my app, wait perhaps a couple of seconds extra in which case my app will be cached anyway and have a cuppa or do I wait a few minutes and have a cuppa to get the perception of a quicker start time? Hell, I might even be waiting for several hundred megabytes of applications to be preloaded that I won't use today.

Yer, I'm sure if you load four or five applications time after time that fits nicely in four gigabytes of RAM and don't use the disk at all then yer, things will be lovely. Alas, the world and peoples' usage patterns are not that simple. Things have a weird way of evening themselves out.

It's a solution in search of a problem. Yes, disk access is slow so we'll intelligently cache in memory and every time you boot up, but if you don't have enough enough RAM then you'll need ReadyBoost. If you don't have that than then you'll hit memory limits anyway, hitting limits within Superfetch, probably adversely affecting other apps and perhaps even going back to disk via disk caching.

Whatever way you dice it you're hitting system limits. Yet again, you have to throw memory and now flash drives at the 'problem' to make it work for you which was the point all along.

Or my own worthless perceptions, of course ;) .

That's the point. Your perceptions and even my perceptions on our own usage patterns are worthless here.

Reply Parent Score: 2