superfetch tweak

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: postmortemIA
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.

That switch doesnt do what you think it does.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
Originally posted by: BD2003
Originally posted by: postmortemIA
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.

That switch doesnt do what you think it does.

Did I say what I want? I see with switch set to 2, superfetch caches less and still caches my programs.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: postmortemIA
Originally posted by: BD2003
Originally posted by: postmortemIA
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.

That switch doesnt do what you think it does.

Did I say what I want? I see with switch set to 2, superfetch caches less and still caches my programs.

And slows down your boot time...
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
Originally posted by: bsobel
Originally posted by: postmortemIA
Originally posted by: BD2003
Originally posted by: postmortemIA
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.

That switch doesnt do what you think it does.

Did I say what I want? I see with switch set to 2, superfetch caches less and still caches my programs.

And slows down your boot time...

how is loading less items from hard drive going to slow down my boot time?

yes, i admit that i don't get what option 1 mean, or what is difference between 2 and 3.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: postmortemIA
Originally posted by: bsobel
Originally posted by: postmortemIA
Originally posted by: BD2003
Originally posted by: postmortemIA
There's more to it than disabling and enabling it.

for long time I looked for ways to tweak it, as in make it not be too aggressive in fetching data that is not used on every boot.

So here are 3 options, number 3 is default:
in registry,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
?EnablePrefetcher?=dword:00000003
?EnableSuperfetch?=dword:00000003

1 = Enable SuperFetch for boot files only;
2 = Enable SuperFetch for programs only;
3 = Enable SuperFetch for both boot files and programs.

That switch doesnt do what you think it does.

Did I say what I want? I see with switch set to 2, superfetch caches less and still caches my programs.

And slows down your boot time...

how is loading less items from hard drive going to slow down my boot time?

yes, i admit that i don't get what option 1 mean, or what is difference between 2 and 3.

So you dont know what any of the options do then.

You dont need to futz with the registry if you want to turn superfetch off. Just disable the service. Then it wont preload anything on boot. Caching programs you use isnt "superfetch", its the same thing XP, 2000 and 9x have been doing.

Prefetching is something ENTIRELY different than superfetch. And yes, as bsobel has said, by screwing with it, you are slowing down your boot.
 

soonerproud

Golden Member
Jun 30, 2007
1,874
0
0
Originally posted by: postmortemIA
how is loading less items from hard drive going to slow down my boot time?

yes, i admit that i don't get what option 1 mean, or what is difference between 2 and 3.

The function is called ReadyBoot, and it depends on ReadyBoost, Prefetching and Superfetch to properly work. When you disable prefetching the boot sequence, you may drastically deteriorate your boot time.

Download and read this guide if you want to learn more about the technologies in Vista, how they work, what tweaks are good and the ones that are counter productive.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
I wish that there was just simple option to tell superfetch/prefetch how much ram it can use for prefetching (not for caching).
 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: postmortemIA
I wish that there was just simple option to tell superfetch/prefetch how much ram it can use for prefetching (not for caching).

The problem is...what youre saying doesnt make sense.

"Prefetching" is something that has been in since XP days, what it does is write a small index of what files are loaded when you boot or launch a certain program. It doesnt actually preload the files, it just makes note of which files are generally loaded at the same time so it CAN load them all at once when you boot or launch that program.

Caching is actually having those files in memory ahead of time. There are two ways to do this:

The standard way, where once you load the files, they stay cached even after you close the program.

Superfetch is a method of precaching the files beforehand, either on boot (Vista), or when you go idle (Vista and W7).

In all cases, you want your memory to be filled, always. Program memory *always* takes precedence to cache memory, so you dont lose anything or hurt in any way by having all your free memory used by cache.

Some people find it annoying to have everything loaded on boot. Thats understandable. But its still useful to have it load in the background when youre idle (away from the PC). Thats why they changed the behavior for W7.

None of those options in the OP will help you achieve that on vista. Either you precache on boot, or you give up precaching entirely. Once you start screwing with prefetching, you're screwing with something that has very little to do with superfetch and caching, despite the similarity in name, and youre just slowing yourself down.

The reason you cant tell it how much to use is because there's only one good answer to that question, as it has always been, and as it always will be: free memory (as in all zeroes) is wasted memory. For all intents and purposes, cache memory IS free memory.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
one can make counter-argument saying that something that is loaded into memory and never used during session is waste of energy and reduces hard disk life, battery life, etc.
the more RAM you have, the more useless stuff will be read from hard drive.
Again, I just want it to limit amount of data it is going to superfetch, because my typical session consists of using web browser and email client and I have 6GB of 'free' RAM.

 

BD2003

Lifer
Oct 9, 1999
16,815
1
81
Originally posted by: postmortemIA
one can make counter-argument saying that something that is loaded into memory and never used during session is waste of energy and reduces hard disk life, battery life, etc.
the more RAM you have, the more useless stuff will be read from hard drive.
Again, I just want it to limit amount of data it is going to superfetch, because my typical session consists of using web browser and email client and I have 6GB of 'free' RAM.

Thats why you have the option of turning it off. If you turn off superfetch, you'll just go back to the old fashioned cache of leftovers.

I'm not sure what it is youre trying to accomplish...if all you really want is your browser and email cached, just turn off superfetch, load them up as you normally would and voila...you're web browser and email are cached.
 

Itchrelief

Golden Member
Dec 20, 2005
1,398
0
71
Originally posted by: postmortemIA
one can make counter-argument saying that something that is loaded into memory and never used during session is waste of energy and reduces hard disk life, battery life, etc.
the more RAM you have, the more useless stuff will be read from hard drive.
Again, I just want it to limit amount of data it is going to superfetch, because my typical session consists of using web browser and email client and I have 6GB of 'free' RAM.

If you're worried about electricity, I think you should just pull out 4gb and mail them to me.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
the more useless stuff will be read from hard drive

You do realize what is read is based on your usage and not just random data from the drive?
 

F1shF4t

Golden Member
Oct 18, 2005
1,583
1
71
Originally posted by: postmortemIA
one can make counter-argument saying that something that is loaded into memory and never used during session is waste of energy and reduces hard disk life, battery life, etc.
the more RAM you have, the more useless stuff will be read from hard drive.
Again, I just want it to limit amount of data it is going to superfetch, because my typical session consists of using web browser and email client and I have 6GB of 'free' RAM.

Just put the comp to sleep (with hybrid sleep option on in case of power failure).
Nothing will need to be fetched into memory if its already there.

If your worried about power use then get a cheap dual core with integrated graphics. Compared to the energy your cpu and gfx card uses, your hdd and ram power consumption is negligible.