Superfetch... how exactly does it work

Page 2 of 5 FirstFirst 1234 ... LastLast

  1. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
       #11

    severedsolo said:
    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


  2. Posts : 3,427
    Windows 10 Pro x64
    Thread Starter
       #12

    SuperFetch: How it Works & Myths

    this is the one about boot times and application loading, having problems finding the bit about delayed start
      My Computer


  3. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
       #13

    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


  4. Posts : 3,427
    Windows 10 Pro x64
    Thread Starter
       #14

    it appears i have got my wires crossed a bit here, the bit about delayed start was a forum post here: Understanding Superfetch in Windows 7 - Neowin Forums (post number 4)
      My Computer


  5. Posts : 136
    Windows 7 Ultimate x64
       #15

    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


  6. Posts : 3,427
    Windows 10 Pro x64
    Thread Starter
       #16

    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


  7. Posts : 136
    Windows 7 Ultimate x64
       #17

    severedsolo said:
    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


  8. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
       #18

    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


  9. Posts : 136
    Windows 7 Ultimate x64
       #19

    whs said:
    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 by BunBun; 26 Jan 2010 at 15:01.
      My Computer


  10. whs
    Posts : 26,210
    Vista, Windows7, Mint Mate, Zorin, Windows 8
       #20

    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


 
Page 2 of 5 FirstFirst 1234 ... LastLast

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 20:00.
Find Us