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.
Thread beginning with comment 362991
To view parent comment, click here.
To read all comments associated with this story, please click here.
segedunum
Member since:
2005-07-06

Superfetch and application loading in tray is totally 2 different thing.

No they arent, and lots of people seem to be hypnotised into believing that they are. The intended effect of using the two is the same - preload all or part of an application into memory to make it load faster. The only difference with Superfetch is that it is a more universal way of managing it for all applications you might use. It does not make the application run faster once it is running and Superfetch itself cannot guarantee that any given application will load or even run faster - just what it thinks you'll be using. There's only so many ways of cutting that.

You make false claims that Superfetch would make other apps to page stuff that isn't true since Superfetched material is always dumped away if memory is needed.

Superfetch relies on building a cache of memory that expands to the total amount of memory that you have. 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.

Superfetch is a process, albeit a low priority one, that moves memory and rebuilds the cache both at startup and as it's running. Memory management is expensive, especially once you start hitting certain limits. To think otherwise and to think that Superfetch is 'free' is stupid. To cultivate this image by dispelling 'myths' is even more stupid.

I never seen any claims, other than forum trolls, that would prove that using Superfetch hinders gaming performance. Show us the proofs!

Sorry, but I'm afraid you can't just start demanding proof in response to me asking for benchmarks and proof of whether Superfetch actually works for people. The subject is Superfetch therefore show me that Superfetch works. You can't just throw something in and say "Prove that it doesn't work". Doesn't work like that.

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.

Reply Parent Score: 1

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