To read all comments associated with this story, please click here.
Couldn't this be solved by using multiple accounts? I'm actually researching this now, because it dawned on me that if SuperFetch data is stored in /Windows/Prefetch, how is it multi-user aware?
Maybe it uses attributes or ACLs to tie .pf files to user accounts? I really have no idea, and Google isn't helpful either. Maybe PlatformAgnostic (you there?) or some of the other Windows NT experts in here can help us out...?
It's really quite simple. The SID of the user account is referenced in the filename (depicted here as %SID%):
AgGlUAD_P_%SID%.db
AgGlUAD_S_%SID%.db
Also, the .pf files are nothing new. These are trace files that are used by the cache manager to improve application launch times through strategic prefetching. This is a feature that was introduced in XP and, as far as I'm aware, has nothing to do with SuperFetch. The windowsitpro.com site has a fairly detailed article about it:
http://tinyurl.com/9qhwso
EDIT: I didn't notice at the time of writing that the distinction between prefetch and superfetch is elaborated upon to some extent in later comments. Still, the above article goes into rather more detail.
Edited 2009-05-16 05:24 UTC
If SuperFetch is just caching and prefetching, wouldn't 'unloading' it take virtually no time, as the memory need not be swapped out or written to disk? And, I would assume, that any work done by SuperFetch is done with ultra-low priority. So, it seems to me, no matter how you cut it, SuperFetch should not cause the performance degradation you're describing; while not providing any benefit, it shouldn't make things any worse than if SuperFetch didn't run at all...
Are you sure this is being caused by SuperFetch? Could it be there is something else causing the performance to degrade over the day?
As wonderful a feature as people make it sound like me neither would benefit much from SuperFetch. I have only 1GB RAM and whenever I am on the computer I am doing memory-heavy things on it like f.ex. programming, 3D modeling or gaming. There simply isn't any memory left to cache anything.
I was planning to try Win7 RC out soon, but I'll have to disable SuperFetch. It'll most likely just slow the performance down in my case instead of boosting it.





Member since:
2006-01-14
The problem with SuperFetch is that Microsoft designed it making certain assumptions. And you know what they say about assumptions. Let me explain:
Microsoft assumes that the normal user is going to use the same apps over and over and over. It then fills up memory pre-loading these apps. What happens when I want to run a big app that I dont run often? How does this work with multiple users?
As a real world example, I run computer labs at a university. We moved to Vista this past year. Computer performance got worse as the day goes on. Why? Different users use different apps. And the computer can't make any long term predictions. So everytime a user does something, the system has to unload what is in memory and then load something new. This results in lots of disk thrashing and horrible performance.
Another bug we ran into was using products like deep freeze and drive shield. How is Vista going to learn usage patterns when it can't make permanent writes to the drive? It doesn't.
Superfetch can be useful, but it can also be a pain. The most useful idea would be to allow the system admins to pick which apps get pre-fetching and then turn off the adaptive learning part.