Superfetch... how exactly does it work

severedsolo

Jack of all Trades
Guru
Gold Member
VIP
Local time
9:15 PM
Messages
3,381
Location
Norfolk UK
Just a little knowledge building here, i understand that superfetch loads applications most used into the memory for easier access, but i read an article explaining it, and it seemed to contradict itself, it said that it optiises boot times, but doesnt start fetching until the CPU is idling after boot, can someone please explain to me how both are possible?
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate Signature Edition
CPU
Intel Core i7 Extreme 3.33GHz
Motherboard
EVGA X-58 SLI Classified
Memory
12GB DDR3
Graphics Card(s)
2x EVGA 285 2GB in SLI
Sound Card
Creative Labs X-Fi ExtremeGamer
Monitor(s) Displays
30" Viewsonic
Hard Drives
2x1TB Western Digital 7200RPM in RAID 0/1TB WD My Book External HDD
PSU
Thermaltake 1000w supporting quad SLI
Case
Thermaltake Armor Full Tower
Cooling
Thermaltake V1 CPU+DIY Liquid cooling
In other words, is it essential to use it and can it be turned off, it can save a fair bit of CPU power apparently.

Thanks
 

My Computer

Computer Manufacturer/Model Number
Home Grown
OS
Windows 7 Pro X64
CPU
Intel i7, 930 2.8Ghz - O/c to 4Ghz @ 1.29v
Motherboard
ASUS Rampage II Gene
Memory
3x2GB = 6GB Mushkin Redline 998805
Graphics Card(s)
Nvidia Geforce 8800GTX
Sound Card
Audigy Soundblaster 24 Bit Extreme
Monitor(s) Displays
Samsung SyncMaster 913N
Screen Resolution
1280 x 1024
Hard Drives
1x Western Digital 500GB, 16MB Crèche, 7,200RPM
1x Western Digital 150GB, 2MB Crèche, 7,200RPM
1x Seagate 250GB, 16MB Crèche, 7,200RPM
PSU
Thermaltake 850W PSU
Case
A butchered case with holes cut out for extra cooling lol
Cooling
CPU = Corsair H50 with 2x 120mm Noctua NF-S12B fans on rad
Keyboard
QWERTY
Mouse
Micky
Internet Speed
Not fast enough
for best performance it is recommended to leave it running. however many people turn it off and nothing bad happens.
 

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate Signature Edition
CPU
Intel Core i7 Extreme 3.33GHz
Motherboard
EVGA X-58 SLI Classified
Memory
12GB DDR3
Graphics Card(s)
2x EVGA 285 2GB in SLI
Sound Card
Creative Labs X-Fi ExtremeGamer
Monitor(s) Displays
30" Viewsonic
Hard Drives
2x1TB Western Digital 7200RPM in RAID 0/1TB WD My Book External HDD
PSU
Thermaltake 1000w supporting quad SLI
Case
Thermaltake Armor Full Tower
Cooling
Thermaltake V1 CPU+DIY Liquid cooling
In other words, is it essential to use it and can it be turned off, it can save a fair bit of CPU power apparently.

Thanks

My bad, after some forum reading and some conclusions, it is pretty much essential to keep it turned on if you want to keep your O/S running smooth and fast!

I'll leave my turned on!
 

My Computer

Computer Manufacturer/Model Number
Home Grown
OS
Windows 7 Pro X64
CPU
Intel i7, 930 2.8Ghz - O/c to 4Ghz @ 1.29v
Motherboard
ASUS Rampage II Gene
Memory
3x2GB = 6GB Mushkin Redline 998805
Graphics Card(s)
Nvidia Geforce 8800GTX
Sound Card
Audigy Soundblaster 24 Bit Extreme
Monitor(s) Displays
Samsung SyncMaster 913N
Screen Resolution
1280 x 1024
Hard Drives
1x Western Digital 500GB, 16MB Crèche, 7,200RPM
1x Western Digital 150GB, 2MB Crèche, 7,200RPM
1x Seagate 250GB, 16MB Crèche, 7,200RPM
PSU
Thermaltake 850W PSU
Case
A butchered case with holes cut out for extra cooling lol
Cooling
CPU = Corsair H50 with 2x 120mm Noctua NF-S12B fans on rad
Keyboard
QWERTY
Mouse
Micky
Internet Speed
Not fast enough
interesting valton, but doesnt answer my question, if it doesnt start fetching until the cpu reaches idle, how does it optimise boot? or is it simply in the way that it arranges the boot files on the HDD?
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox
well idk i didn't read the white paper article on it, i just pointed you in the right direction. but if it doesn't start up until the cpu comes to idle then i'd say it doesn't help boot times out much. but according to the above poster disabling it can cause system instability so thats something to think about before messing with it. personally i don't see a reason to turn it off myself and like i've said many times on these forums if it ain't broke don't fix it.
 

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate Signature Edition
CPU
Intel Core i7 Extreme 3.33GHz
Motherboard
EVGA X-58 SLI Classified
Memory
12GB DDR3
Graphics Card(s)
2x EVGA 285 2GB in SLI
Sound Card
Creative Labs X-Fi ExtremeGamer
Monitor(s) Displays
30" Viewsonic
Hard Drives
2x1TB Western Digital 7200RPM in RAID 0/1TB WD My Book External HDD
PSU
Thermaltake 1000w supporting quad SLI
Case
Thermaltake Armor Full Tower
Cooling
Thermaltake V1 CPU+DIY Liquid cooling
oh i have no intention of switching it off, i was just curious about the boot thing, never mind, ill keep on wondering, thanks for the article though, interesting read
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox
sorry i couldn't be more helpful, i've just never worried enough to check into it.
 

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate Signature Edition
CPU
Intel Core i7 Extreme 3.33GHz
Motherboard
EVGA X-58 SLI Classified
Memory
12GB DDR3
Graphics Card(s)
2x EVGA 285 2GB in SLI
Sound Card
Creative Labs X-Fi ExtremeGamer
Monitor(s) Displays
30" Viewsonic
Hard Drives
2x1TB Western Digital 7200RPM in RAID 0/1TB WD My Book External HDD
PSU
Thermaltake 1000w supporting quad SLI
Case
Thermaltake Armor Full Tower
Cooling
Thermaltake V1 CPU+DIY Liquid cooling
In other words, is it essential to use it and can it be turned off, it can save a fair bit of CPU power apparently.

Thanks

You do that if your OS runs off an SSD. But for a HDD it is improving performance. Turning it off is counterproductive.
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000
Just a little knowledge building here, i understand that superfetch loads applications most used into the memory for easier access, but i read an article explaining it, and it seemed to contradict itself, it said that it optiises boot times, but doesnt start fetching until the CPU is idling after boot, can someone please explain to me how both are possible?


Could you link the article please.
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox
according to the above poster disabling it can cause system instability

That is not so. The only consequence would be that the system runs slower. There is a lot of mystery about superfetch, but the basic idea is pretty simple. Superfetch tries to overcome some of the inherent performance inadequacies of a spinning disk. It keeps fequently used programs or subroutines (e.g. dlls) "on hand". For that it uses available RAM (the part that is unused by running programs) and optimizes the position of those frequently used (or used last) on the HDD. Pretty neat idea.
For non-spinning disks (SSDs), superfetch makes no sense because the access times are so fast and the superfetch overhead would be counterproductive (besides some other side effects).
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox
The first thing I do on any Vista/7 system I setup is... turn off superfetch.

The reason I do this is I find that while it doesn't use my CPU resources it uses a crap load of HDD resources. And for a dynamic user such as myself that is never doing the same thing from day to day and constantly filling and draining my ram with my own appz of my choosing I find that the increased strain on the HDD/memory subsystem is far more performance robbing then it is benefitting by having my entire 8gb of ram full of crap that I may or may not use today. I also turn off my page file and just make sure I always have enough RAM for what I need. This way I am ensured that my full HDD performance is availible to me at all times. Also remember that cacheing will only help load times. I found that while I was trying to load something that wasn't already cached it was hurt by superfetch loading stuff I didn't need. I was appalled by my constantly red HDD activity light when I first installed Vista.

I find the biggest example of the above to be with laptops with 5400 RPM drives and slower chipsets (most of the first laptops that came with Vista when people were complaining about it). Turning off superfetch for customers with complaints of super slow laptops useing vista recitified there problem for about 90% of the complaints I had. Workstations are another setting I found a huge benefit to. When doing CAD work I find (esspeically 3D modeling) I find it tries to cache stuff too much between renders and what not. Very annoying as the chipset is bombarded with needless traffic slowing down the system.

Turning superfetch off doesn't disable cacheing entirely either so you still get the benefits of cacheing. Just not to the extreme that superfetch does.

However I will end this by saying that I would not reccomend this for all users. Some users will benefit greatly from Superfetch. I just haven't found any yet.
 

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate x64
CPU
QX6700 @ 3.2Ghz (temporarily till I get the drive to tweak)
Motherboard
Asus Maximus Formula
Memory
8gb (4x2gb) OCZ PC2-8500
Graphics Card(s)
GTX280
Sound Card
Auzentech Prelude
Monitor(s) Displays
Samsung 244T & 940BF
Screen Resolution
1920x1200 & 1280x1024
Hard Drives
2 x Hitatchi 7K500 500GB in raid 0
PSU
Seasonic M-12 700w
Case
Lian Li PC-6077B
Cooling
Liquid (D-tek Fuzion 2/DDC+/240GTX)
Keyboard
Saitech Eclipse II
Mouse
Logitech G9
Internet Speed
22Mbit burst - 15 Mbit typical down / 500Kbit up
Other Info
http://pics.livejournal.com/bun_bun/pic/001c64ww
right, having no clear answers on this, i decided to observe it for myself, the moment i got a desktop i opened task manager and watched it like a hawk as it cached memory, my observations were as follows:

Upon booting a small amount of RAM is precached, but superfetch doesnt fill the ram until the CPU hits idle, if the cpu spikes above 10% superfetch stops until its dropped again,

therefore, my theory is this: while the "welcome" screen is spinning, it superfetches the files needed for boot, but it doesnt superfetch the apps until boot is complete and the cpu isnt doing anything, sound about right?
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Medion Erazer (note to self: insert model number) - with custom additions
OS
Windows 10 Pro x64
CPU
Intel Core i5 7400 @ 3.00GHz
Motherboard
OEM supllied with PC
Memory
8GB 2133Mhz DDR4 (OEM supplied)
Graphics Card(s)
Gygabyte Windforce GTX 1050Ti (Factory Overclocked)
Sound Card
Realtek
Monitor(s) Displays
Acer Al1980 + HKC
Screen Resolution
1360*768(HKC) / 1280*1024(Acer)
Hard Drives
1TB Toshiba
1TB WD Caviar Green
120GB Samsung Evo 840
PSU
OEM supplied (no power rating on case)
Case
OEM Supplied
Cooling
Stock
Keyboard
Logitech Wireless
Mouse
Logitect Wireless
Internet Speed
40Mb/s Down 10Mb/s Up
Antivirus
Defender
Browser
Firefox
right, having no clear answers on this, i decided to observe it for myself, the moment i got a desktop i opened task manager and watched it like a hawk as it cached memory, my observations were as follows:

Upon booting a small amount of RAM is precached, but superfetch doesnt fill the ram until the CPU hits idle, if the cpu spikes above 10% superfetch stops until its dropped again,

therefore, my theory is this: while the "welcome" screen is spinning, it superfetches the files needed for boot, but it doesnt superfetch the apps until boot is complete and the cpu isnt doing anything, sound about right?

Sounds right to me. And my problem with this is you can have low CPU usage but high disk demand and superfetch seems to ignore this. So applications needing to access the disk but have low CPU usage (which is like... everything esspecially if you have a dedicated raid controller) run super slow.

However I have to say I haven't really played with superfetch in awhile... I don't know if they have updated it. Esspecially windows 7... I havent given it a chance and there is one aspect of superfetch that sounds really appealing... boot tracing tied with defragmenter. That is a very cool idea and im almost surprised it came from Microsoft. I wish I could just enable that part of it... they had an application that did that on its own that worked with XP and I swore by it. It did manual boot traces and then you could defrag based on that. Ohwell maybe I will give superfetch another try with Windows 7... maybe maybe not tho. I use 75-90% of my ram on my own tho so the point of superfetch is lost on me.
 

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate x64
CPU
QX6700 @ 3.2Ghz (temporarily till I get the drive to tweak)
Motherboard
Asus Maximus Formula
Memory
8gb (4x2gb) OCZ PC2-8500
Graphics Card(s)
GTX280
Sound Card
Auzentech Prelude
Monitor(s) Displays
Samsung 244T & 940BF
Screen Resolution
1920x1200 & 1280x1024
Hard Drives
2 x Hitatchi 7K500 500GB in raid 0
PSU
Seasonic M-12 700w
Case
Lian Li PC-6077B
Cooling
Liquid (D-tek Fuzion 2/DDC+/240GTX)
Keyboard
Saitech Eclipse II
Mouse
Logitech G9
Internet Speed
22Mbit burst - 15 Mbit typical down / 500Kbit up
Other Info
http://pics.livejournal.com/bun_bun/pic/001c64ww
The first thing I do on any Vista/7 system I setup is... turn off superfetch.

This is probably a reasonable approach given your 8GBs of RAM and the type of applications (e.g. CAD) you run. I also turned superfetch off because my OS is on an SSD.
But for the average system (e.g. 2GB of RAM) plus a typical usage pattern, superfetch will speed things up. And that not only because it caches in RAM but also because it prioritizes the frequently used programs on the HDD (with the help of Defrag).
There are several functions of the system (indexing is another example) with which one can play around and obtain better results in specific situations. But in general, I advise to leave the system functions alone because on the one hand, the user may not understand the implications and on the other hand, it may be counterproductive to change the default settings.
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000
The first thing I do on any Vista/7 system I setup is... turn off superfetch.

This is probably a reasonable approach given your 8GBs of RAM and the type of applications (e.g. CAD) you run. I also turned superfetch off because my OS is on an SSD.
But for the average system (e.g. 2GB of RAM) plus a typical usage pattern, superfetch will speed things up. And that not only because it caches in RAM but also because it prioritizes the frequently used programs on the HDD (with the help of Defrag).
There are several functions of the system (indexing is another example) with which one can play around and obtain better results in specific situations. But in general, I advise to leave the system functions alone because on the one hand, the user may not understand the implications and on the other hand, it may be counterproductive to change the default settings.

That's why I stated at the end of my post that I wouldn't reccomend it to all users. My experience with superfetch has been either on super slow laptops with only a gig of ram and 5400rpm hard drives and then my systems running 400mb/s burst raid arrays and OC'ed memory subsystems. So much in between where it should benefit the user.

However the boot trace/defrag aspect is something everyone could benefit from and I would like to see that seperated from the main superfetch service. They store there variables in seperate places so I wouldn't imagine it being a great undertaking to seperate boot time superfetch from normal running superfetch.

EDIT: Or better yet! Add power user varibles to set a limit to how much ram superfetch is allowed to use (instead of trying to fill 6-12gb of ram) and add exclusion/inclusion lists or manual overide on priority's and what not. Let the power user take control of what superfetch is doing and when... then I would love it.
 
Last edited:

My Computer

Computer Manufacturer/Model Number
Custom
OS
Windows 7 Ultimate x64
CPU
QX6700 @ 3.2Ghz (temporarily till I get the drive to tweak)
Motherboard
Asus Maximus Formula
Memory
8gb (4x2gb) OCZ PC2-8500
Graphics Card(s)
GTX280
Sound Card
Auzentech Prelude
Monitor(s) Displays
Samsung 244T & 940BF
Screen Resolution
1920x1200 & 1280x1024
Hard Drives
2 x Hitatchi 7K500 500GB in raid 0
PSU
Seasonic M-12 700w
Case
Lian Li PC-6077B
Cooling
Liquid (D-tek Fuzion 2/DDC+/240GTX)
Keyboard
Saitech Eclipse II
Mouse
Logitech G9
Internet Speed
22Mbit burst - 15 Mbit typical down / 500Kbit up
Other Info
http://pics.livejournal.com/bun_bun/pic/001c64ww
Yeah, it would be nice to have more srews to turn. But then, do you want to put the extra code into the system for the 2% of users that know how to deal with that and understand the implications.
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000
Back
Top