Turning Superfetch off

pcslookout

Lifer
Mar 18, 2007
11,959
157
106
Why would someone want to turn superfetch off in windows vista ? I don't think it will really help speed up vista any and could just hurt the OS more than do any good.
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Goto Services > Superfetch > Properties and set it to Disabled

Although i suggest not to do it.
 

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
He didn't ask HOW to turn it off, he asked if there's any reason to.

The answer is, if you're running on a system that can handle Vista (1+GB RAM) then there's no reason to turn off Superfetch. If your system can't handle Vista... don't run Vista.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: pcslookout
Why would someone want to turn superfetch off in windows vista ? I don't think it will really help speed up vista any and could just hurt the OS more than do any good.

Some users with disk drivers or minifilters that dont properly impliment IO priority levels might be more annoyed by Superfetch during startup than others (this is getting fixed as drivers are updted). Other than that, no, most people who turn it off think 'oh my god its using all my ram' and don't understand the Vista ram priority system that was implimented at all.
 

VinDSL

Diamond Member
Apr 11, 2006
4,869
1
81
www.lenon.com
Originally posted by: Aberforth
the problem is there is no advanced customization options for superfetch. :(

It's NOT a 'problem'! Michael Fortin did this on purpose...



Originally posted by: pcslookout
Why would someone want to turn superfetch off in windows vista ? I don't think it will really help speed up vista any and could just hurt the OS more than do any good.

Go watch THIS - it explains how SuperFetch works in exquisite detail - the whole enchilada! :D
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: Aberforth
the problem is there is no advanced customization options for superfetch. :(

And exactly what is it you want to customize.
Bill
 

VinDSL

Diamond Member
Apr 11, 2006
4,869
1
81
www.lenon.com
Originally posted by: bsobel

And exactly what is it you want to customize.

Bottom line: SuperFetch (and ReadyBoost/ReadyDrive) studies how YOU use your computer and, over time, learns to pre-load things into memory.

Ppl want to diddle around and cheat the system, and have it pre-fetch what THEY think they need...

And, software vendors want to do the same thing - create utilities that will make a better SuperFetch, if you will.

The MS Performance Team does NOT want anybody messing with SuperFetch, at this juncture, nor, any time in the foreseeable future!!!

They said that they might share the SuperFetch code with developers some day, but don't hold your breath. :D
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: bsobel
Originally posted by: Aberforth
the problem is there is no advanced customization options for superfetch. :(

And exactly what is it you want to customize.
Bill

I want to customize cache location, priority, disable certain apps to be cached. I'd also want some API's to tweak around.

 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: VinDSL
Originally posted by: bsobel

And exactly what is it you want to customize.

Bottom line: SuperFetch (and ReadyBoost/ReadyDrive) studies how YOU use your computer and, over time, learns to pre-load things into memory.

I'm quite aware of how it works, my question was directed at Aberforth.

Ppl want to diddle around and cheat the system, and have it pre-fetch what THEY think they need...

There is no evidence any of these posters could do a better job ;)

And, software vendors want to do the same thing - create utilities that will make a better SuperFetch, if you will.

There is really nothing magic in the system, if someone wanted to write their own now that IO priority and memory priority are managed by the system they easily can.

Bill
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: Aberforth
Originally posted by: bsobel
Originally posted by: Aberforth
the problem is there is no advanced customization options for superfetch. :(

And exactly what is it you want to customize.
Bill

I want to customize cache location, priority, disable certain apps to be cached. I'd also want some API's to tweak around.

Cache location? What cache location, your unused main system memory? You dont cache applications, you cache files. What do you want to exclude, why? Do you understand IO priority and memory priority as implimented, why would you want to change it?

Basically all I see if ou want to tweak because you can't but you dont really know what you want to tweak.

Bill
 

Aberforth

Golden Member
Oct 12, 2006
1,707
1
0
Originally posted by: bsobel
Originally posted by: Aberforth
Originally posted by: bsobel
Originally posted by: Aberforth
the problem is there is no advanced customization options for superfetch. :(

And exactly what is it you want to customize.
Bill

I want to customize cache location, priority, disable certain apps to be cached. I'd also want some API's to tweak around.

Cache location? What cache location, your unused main system memory? You dont cache applications, you cache files. What do you want to exclude, why? Do you understand IO priority and memory priority as implimented, why would you want to change it?

Basically all I see if ou want to tweak because you can't but you dont really know what you want to tweak.

Bill

with API support i can prioritize my apps to *pre-load* first within the memory.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Depending on how much free ram you have, if you check the task manager, you'll find that one svchost.exe is taking up a huge chunk of memory - thats the instance that deals with superfetch. All of the information required to know what to cache and when to cache does require its own chunk of memory.

So if you're absolutely positively sure you'll never ever have ANY benefit from precaching, then turn it off might save a few MB. There are very, very few fringe scenarios that might fit that case - you routinely work with massive photoshop bitmaps that take up nearly all your memory, and rarely come back to them, for instance.

But its all progressive with the amount of free ram you have - when you run out, the service wont be taking up much memory at all. The constant benefits you will gain from precaching will almost always far outweigh the benefits of saving a few MB in the one worst case scenario that happens once in a blue moon.

And yes, I'd love to be able to prioritize which apps get preloaded. Its pointless for it to soak up 1gb preloading a game I'm done with when it can soak up 1gb preloading a game I've just started. But it does work fairly well on its own. The reasoning one of the MS devs gave for not allowing it - "It'd be like handing over the keys to the car." Its my car, isnt it? Give me the damn keys.
 

VinDSL

Diamond Member
Apr 11, 2006
4,869
1
81
www.lenon.com
Originally posted by: bsobel
There is no evidence any of these posters could do a better job ;)
Agreed! Absolutely...

Look, I don't know what you know - nor do I know what the posters think they know!

A mod, in the lappy area, moved my Vista SP1 RC thread over here...

For all I know, you guys are all Einsteins! :)

SuperFetch manages MEMORY, not files - it's a self-tuning diagnostic program that sits on top of the memory manager - intelligent sub-setting, if you will.

SuperFetch does NOT cache files - it prioritizes 4kb pages e.g. parts of files - which XP/Vista prefers to deal with... and loads them into memory ahead of time. Files contain 100s of 1000s of pages each. Whom, amongst you, is smart enough to figure out which of these PAGES need to be loaded?

Microsoft is NOT going to hand the keys to the car to anyone, so you guys can forget about playing around with SuperFetch!

The one thing you CAN monkey with is hyper-drives - ReadyBoost/ReadyDrive - but most posters are too dumb to even implement this soooooo...

Yes, you're right! :D
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
with API support i can prioritize my apps to *pre-load* first within the memory.

To what benefit, one of two things are going to happen here.

You want to run your application, we will call it X.exe. Superfetch is going to see you use X.exe and at some point cache it before if thinks you will use it. It caches it be reading the parts of the file you've used before via the cache manager. Its read into low priority memory pages (meaning if you really need the memory, this memory gets thrown away and available for applications to allocate for 'real' uses).

Now, you go to launch X.exe, it starts faster since the pages needed never get read from disk, they instead simply have their page priority changed in memory to basically an active status.

The second scenario is superfetch hasn't pre-loaded your image yet. Well, the normal loader takes over and loads the program normally. Superfetech sees that it didn't have this cached at the right time and the priority algorithm adjusts to try and get it before you need it next time.

So basically if your using X.exe it will wind up getting loaded. No i by 'my apps' you mean you as a software author and you think you should pre-load your pages into memory so your app starts faster, then superfetch is the wrong way to do it. You can just do this yourself via the memory manager. Now, I'd highly recommend NOT doing this as you'll just compete with Superfetch (which will wind up doing the same thing if people actually use your program).

Overall, Superfetch replaces all those stupid startup time programs that Adobe, Office, Quicken, etc have shipped to pre-load some of their images so their apps start faster when 'you' think you've first launched them. Dont try to work around it, just let the system do its job.

Bill
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
A mod, in the lappy area, moved my Vista SP1 RC thread over here...

I think that was me ;)

SuperFetch manages MEMORY, not files - it's a self-tuning diagnostic program that sits on top of the memory manager - intelligent sub-setting, if you will.
SuperFetch does NOT cache files - it prioritizes 4kb pages e.g. parts of files - which XP/Vista prefers to deal with... and loads them into memory ahead of time. Files contain 100s of 1000s of pages each. Whom, amongst you, is smart enough to figure out which of these PAGES need to be loaded?

All correct.

Microsoft is NOT going to hand the keys to the car to anyone, so you guys can forget about playing around with SuperFetch!

I guess my point is 'Superfetch' is in actuality not that complicated. The real work is being handled by the IO priority changes and the memory priority changes in the cache manager. All superfetch is doing is figuing out what to read and when (not saying that trivial, but it only 1/3 the overall battle I'd say) while the cache manager is handling the cache itself and the IO subsystem is ensuring that the related IO doesnt step on actual important work.

Cheers,
Bill
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
The full quote was more likely "It'd be like handing over the keys to the car, to a first grader." :)
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: bsobel
The full quote was more likely "It'd be like handing over the keys to the car, to a first grader." :)

Heh, I mean I do understand the sentiment, for most people, the built in algorithms will probably do a better job. However, after taking a look at what it loads during boot, I see a lot of pointless caching that I'd really like the opportunity to exclude stuff more than anything.

Even though I use it maybe once in a blue moon, it insists on loading my entire WMP library file (100+mb). It's cached part of a video that I watched the night before. I'm not going to watch it again. Even if I was, whats the point in caching something that streams at kb/sec. It also insists on loading a good 200-300mb of a game that I havent played in weeks. I might have played the hell out of it for weeks straight, but I'm done with it, and I have no real way to tell it that short of uninstalling the game. And all that is true wasted memory. I'd suspect that at least 50% of the cache is just pure waste.

Its not that big of a deal I suppose, but it'd make a neat powertoy.
 

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
That's the thing, the memory isn't wasted. Cached memory is dropped instantly when something needs it. That's part the point of Superfetch; if something being load just so happens to be in the cache, it's all super fast. If not, then you load as normal. If you need more RAM, Superfetch will drop cached information immediately.

Ultimately there's no loss compared to with Superfetch off. Either it loads the same way as before, or it loads super fast.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Even though I use it maybe once in a blue moon, it insists on loading my entire WMP library file (100+mb). It's cached part of a video that I watched the night before. I'm not going to watch it again.

In theory (I wont defend in practice) if its caching that file (WMP library) its because you or WMP have accessed it enough its going to be accessed. Now that library is used by the sharing stuff to (sharing media as I recall) so that could be triggering it.

Even if I was, whats the point in caching something that streams at kb/sec. It also insists on loading a good 200-300mb of a game that I havent played in weeks.

The point is, the memory is otherwise free so somethign ANYTHING should be there other than zeros. This way at least there is a chance. You play that file, while it streams at X it still has to cause disk IO, better the IO happen at low priority when unneeded than later when critical and you move the head between two equally important IOs.

I might have played the hell out of it for weeks straight, but I'm done with it, and I have no real way to tell it that short of uninstalling the game.

Actually its supposed to notice you've stopped playing it (or more directly, other items are more common) and those float to the top of the cache. Eventually that item wont be cached even if it is installed.

And all that is true wasted memory. I'd suspect that at least 50% of the cache is just pure waste. Its not that big of a deal I suppose, but it'd make a neat powertoy.

Well thats easy to fix, erase c:\windows\prefetch\*.* The cache will get rebuilt from that point on.

Bill


 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: ChronoReverse
That's the thing, the memory isn't wasted. Cached memory is dropped instantly when something needs it. That's part the point of Superfetch; if something being load just so happens to be in the cache, it's all super fast. If not, then you load as normal. If you need more RAM, Superfetch will drop cached information immediately.

Ultimately there's no loss compared to with Superfetch off. Either it loads the same way as before, or it loads super fast.

I consider it wasted if its being used to cache something that I'll never use or never need to be cached, as opposed to caching something useful. Believe me, I know how it works. :p
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: bsobel
In theory (I wont defend in practice) if its caching that file (WMP library) its because you or WMP have accessed it enough its going to be accessed. Now that library is used by the sharing stuff to (sharing media as I recall) so that could be triggering it.

Thats the theory as I understand it too, but from what I can tell, it doesnt bare out. I dont have sharing turned on or anything.


The point is, the memory is otherwise free so somethign ANYTHING should be there other than zeros. This way at least there is a chance. You play that file, while it streams at X it still has to cause disk IO, better the IO happen at low priority when unneeded than later when critical and you move the head between two equally important IOs.

Sure, but there are other things I'd prefer it to cache. I'd much rather it have fragments of a game level in memory to shave a few seconds off a level launch, than half a movie that might save 15ms by avoiding unecessary head movement when I relaunch it. Theres no need to precache a movie to avoid I/O clogging when a simple playback buffer will do the trick just as well.

Actually its supposed to notice you've stopped playing it (or more directly, other items are more common) and those float to the top of the cache. Eventually that item wont be cached even if it is installed.

Sure, but it seems to take quite a while in practice. I suppose after launching the same set of I/O a few times per day for three weeks in a row has really convinced SF that this is important stuff. And it was badass in helping speed things up during that time, but it isnt exactly helping now.

The point is: I could have pointed it toward that game's folder before I even "trained" it, and now I can't turn it away. This isnt optimal behavior. Seriously, I'm enough a computer nerd to deal with this and to WANT to deal with things like this. Theres no reason why I shouldnt be allowed to.


Well thats easy to fix, erase c:\windows\prefetch\*.* The cache will get rebuilt from that point on.

Bill

Eh, theres far more in that folder than just the instructions for the SF cache that I wouldnt want to erase. (Boot traces, app prefetch files, optical disk layout for defrag, etc)
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Eh, theres far more in that folder than just the instructions for the SF cache that I wouldnt want to erase. (Boot traces, app prefetch files, optical disk layout for defrag, etc)

It's all rebuildable if you nuke the dir (you can also nuke the superfetch database, but its easier to just nuke the dir, after a reboot or two the world is rebuilt). There is nothing in there that is dangerous to nuke.

Bill