Tech Off Thread

14 posts

SuperFetch in windows 7, does it really do any good work ?

Back to Forum: Tech Off
  • User profile image
    JohnQPublic

    SuperFetch is said to speed up a system but without any performance counters how can a neutral party verify yet another claim from microsoft ?
    This could just be more false advertisement from a greedy evil company.

    Tools like FancyCache and SuperCache have popped up which would indicate SuperFetch isn't doing its job well enough.

    Can anyone chip in with some info on the matter ?
    Is SuperFetch doing its work or do we need tools like FancyCache and SuperCache ?

  • User profile image
    Sven Groot

    @JohnQPublic: Please refer to this tweaking guide.

    Tools like the ones you mentioned are usually either placebos or actually make things worse. Only a very small percentage actually helps.

    And yeah, SuperFetch does help speed up application launch times if you've got enough memory,

    EDIT: This feels like a setup post for a spammer. I could be wrong, but time will tell. Wink

  • User profile image
    spivonious

    SuperFetch works great. I agree with Sven that we'll see a spammer come in now and post a link to a caching tool.

  • User profile image
    JohnQPublic

    No i'm not a spammer, i just lack imagination and energy to even bother to come up with display name. Btw technically i haven't provided any links, only the names of some of the tools as an example of what i'm talking about.

    This reminds me of Charles calling people for trolls just because they ie give negative feedback.

    The tools are not as complicated and specific as SuperFetch (afaik the api's needed to write a superfetch open source version is missing).
    They use block based caching of all the requested data from the hard drive. So the access time would be sped up no matter what data the programs regularly used not just the launch speed.

    I was testing ramdisk a few days ago and it got me thinking. The speed up was huge. Using a caching solution might be good both for performance and the longevity of the hard drive.

    Since i cant check if superfetch is doing its work right (also learning systems have a habit of getting messed up after a few months) i'm left with no choice but to test tools like above to see if i get a speed up or not.

    I'm using a laptop and the hard drive is slow so using the ram for some caching should increase the performance.

    Now i'm back to the question in my first comment again.
    Those that have tried such tools, did they improve the performance for you ?

  • User profile image
    AndyC

    , JohnQPublic wrote

    This reminds me of Charles calling people for trolls just because they ie give negative feedback.

    *sigh* if you're going to sign up for a new account pretending to be someone new to the community, it helps not to mention a comment from the end of an obscure thread pretty much only a handful of people would have read. </freeadvice>

    The tools are not as complicated and specific as SuperFetch (afaik the api's needed to write a superfetch open source version is missing).

    If the APIs were missing, how would SuperFetch work? It's entirely possible to write a replacement for it, although the phrase "reinventing the wheel" would seem to apply.


    They use block based caching of all the requested data from the hard drive. So the access time would be sped up no matter what data the programs regularly used not just the launch speed.

    As does SuperFetch, it's all about what it decides to pre-fetch that makes it apply to launch times rather than anything else.

    I was testing ramdisk a few days ago and it got me thinking. The speed up was huge. Using a caching solution might be good both for performance and the longevity of the hard drive.

    You're trading performance in one area (disk caching) for another (absolutely everything else that requires RAM). It might appear faster in isolated benchmarks or over short periods of time, but under real world usage ramdisk type approaches sacrifice far more performance than they gain.

  • User profile image
    Sven Groot

    , JohnQPublic wrote

    No i'm not a spammer, i just lack imagination and energy to even bother to come up with display name. Btw technically i haven't provided any links, only the names of some of the tools as an example of what i'm talking about.

    You have to admit, your post looks like the kind of thing a spammer would post to have someone (same person with a different account) reply to offering a link to the "solution".

    If that's not the case, then I apologise.

    Also, using the term "greedy evil company" to refer to the organization hosting the forum in your first post ever is not a good way to make a good first impression on a forum.

    @AndyC: He could simply have been a long-time lurker. Let's not jump to conclusions.

  • User profile image
    JohnAskew

    jump to conclusions mat

  • User profile image
    PerfDude

    Checking whether SuperFetches intellegent caching mechanisms are benficial for your personal usage can be pretty easy. Just disable the service, and then reboot the system.

    Go to the Service Configs and make the sysmain service disabled, and then reboot the system.

    After that launching processes that require executables (dlls, exes) to be read from disk will take longer. However, on systems without memory pressure executables used hors/days ago will still be in memory. To understand the impact of memory pressure you could run a large game that consumes most of physical memory and would cause these executables to be purged from RAm every few hours. Superfetch will pro-actively bring things back before you use them, where as use based caching will not.

    Also SuperFecth loads only teh parts of images that it has seen loaded into memory repetatively, and does not load the entire executable. Many of the other SuperFetch wannbe's load the entire executable into memory, wasting MB's of RAM per executable.

  • User profile image
    JohnQPublic

    AndyC wrote

    *sigh* if you're going to sign up for a new account pretending to be someone new to the community, it helps not to mention a comment from the end of an obscure thread pretty much only a handful of people would have read. </freeadvice>

    wow, first i'm a spammer and now i'm pretending to be somebody else.

    While i did expect this based on how other people were treated, it is still disappointing to be right.
    This microsoft community seem to be full of judgy people with preconceived opinions, among other things.


    If the APIs were missing, how would SuperFetch work? It's entirely possible to write a replacement for it, although the phrase "reinventing the wheel" would seem to apply.


    I mean publicly open and supported APIs that non-microsoft devs have access to.

    The way SuperFetch have been explained tells me it might not be possible to write it from scratch by a using publicly documented api's.

    I would be very interested if somebody have reversed engineered SuperFetch. While samples are at least something (many samples are of very low quality), real use drivers are far better at educating devs for obvious reasons.

    FYI:"reinventing the wheel" can actually make it better. Have you seen future air plane designs that are more efficient than normal air planes ?
    When it's done right you can get positive results.

    You're trading performance in one area (disk caching) for another (absolutely everything else that requires RAM). It might appear faster in isolated benchmarks or over short periods of time, but under real world usage ramdisk type approaches sacrifice far more performance than they gain.

    That does not make sense at all. With enough ram and a smart use of it you can gain performance. For instance I know some that use ram disks to reduce load time in games. They load the ram disk with the game they want to play.
    My disk speed 80 mb/s, my ram speed through a ram disk 5000mb/s
    Not even ssd disks can come up to that ram speed, not even close ! Theoretical limit of SATA3 is 768 mb/s, i've seen no disks that use that speed.

    Do you have any facts / numbers to back up your claim ?

     

    Sven Groot wrote

    Also, using the term "greedy evil company" to refer to the organization hosting the forum in your first post ever is not a good way to make a good first impression on a forum.

    First impressions are overrated and quite illogical to base your opinion of a person on.
    I tell it how i observe it. Microsoft fan boys with their unhealthy thinking can bite me.

    "If you do not want to be called a murderer than stop killing people!" - Can't remember the author name

    It would be refreshing if companies would be honest and tell people the truth without spins or vague language omitting important details and exceptions.

    @PerfDude:


    I've considered that approach already, it is too subjective to be of any real use.
    Like how it feels faster after installing a performance update or trying a "new" phone (http://www.youtube.com/watch?v=rdIWKytq_q4), remember Mojave Experiment anyone ?

    Feelings should not have anything to do with performance testing.

    I want quantifiable measurements. Things that can be verifiable that do not depend on the day of time, position of the moon and the stars or blood sugar and hormone levels.

    I can't understand why microsoft have not added performance counters to SuperFetch yet. They must have used something to test its performance with, why permanently disable that ?!
    Why not allow neutral parties access to it ?

     

    @all

    This will most likely be misinterpreted or twisted in some way but that will only prove my point so here goes:
    Honestly, i came to this 'tech off' sub forum to get my tech question answered, exchange information, not to hear all your preconceived opinions of me,  to become your BFF, to stroke anyone's over-sized mentally unhealthy ego or anything else.

    If i wanted an invalid opinion of myself i would have asked for one.

    How come these days you have to stroke egos, be BFF's, kiss * or threaten life or job in order to get your questions answered ?

    A few years ago you could ask a question, get an answer, say 'thank you' and move on.

    Very frustrating and time consuming when every thread have to repeat the same thing over and over again. Ask question -> people coming with unnecessary things -> answering those or making them go away -> getting on topic -> provide more information -> than a may be answer

    Yes, i'm cranky now, if this was your goal than you have succeeded.
    Hope you are happy. This thread will most likely die now.

    People wonder why i'm cranky all the time and dislike and avoid internet "communities".

  • User profile image
    AndyC

    , JohnQPublic wrote

    *snip*
    I mean publicly open and supported APIs that non-microsoft devs have access to.

    The way SuperFetch have been explained tells me it might not be possible to write it from scratch by a using publicly documented api's.

    A SuperFetch-like could trivially be implemented using a file system filter driver. I'd put money on that being how it actually is implemented.

  • User profile image
    evildictait​or

    I'll leave these here:

    http://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx

    http://www.tomshardware.com/reviews/windows-vista-superfetch-and-readyboostanalyzed,1532.html

    But summary is this: SuperFetch does work, and turning it off slows down your machine.

    Other third party tools might do similar things to SuperFetch. Some might be better, some might be worse.

    Also, yes, it's possible to re-implement SuperFetch using entirely public APIs, but I can't see why you'd bother, given that SuperFetch is already there.

  • User profile image
    Sven Groot

    , JohnQPublic wrote

    wow, first i'm a spammer and now i'm pretending to be somebody else.

    While i did expect this based on how other people were treated, it is still disappointing to be right.
    This microsoft community seem to be full of judgy people with preconceived opinions, among other things.

    No, we simply have a small number of very persistent trolls who have an established history of creating new accounts and pretending to be someone else for a while. This has made certain people unfortunately suspicious of anyone new who at first impressions (which you might not like but which for 99% of the world determine how a person is viewed) seems to have an anti-Microsoft stance.

    We've also had a history of spammers where one person asks a question and then a second person (same person with different username) answers it linking to the product they're trying to spam. Your first post simply looked a lot like that kind of post, which is where my initial reaction came from (and notice that I did give you the benefit of the doubt by attempting to answer your question).

    "Telling it how you observe it" is laudable in itself, but you have to admit that calling Microsoft evil and greedy in your very first post on a Microsoft-hosted forum is rather confrontational. Even more so as you've evidently been lurking here for a while and were aware of how this is perceived by the community. It was also contrary to the point of your question, because I understand from your follow-up posts that you were asking about (the lack-of) performance counters for SuperFetch, whereas your original post reads just as a complaint against SuperFetch apparently not working for you.

    Given that you knew this and say you expected this, then why did you choose to behave in such a confrontational way? The only thing that makes sense to me is because you wanted us to react that way to prove a point. And someone who is deliberately confrontational in order to provoke a reaction on forums is called a troll, in case you didn't know.

    If you have so much trouble with Internet communities (if it were just here it'd be different, but you make this sound like a common occurrence), maybe you should reconsider your own attitudes? If your usual modus operandi is to come on a forum and insult your hosts in your first post, then it doesn't surprise me that you've had negative experiences.

  • User profile image
    Wipeout2097

    Windows cache and Superfetch need persistance and a tweak utility. I keep having slowdowns due to evictions of frequently used programs

  • User profile image
    androidi

    @Wipeout2097: I would agree on this. In Vista Superfetch performance improvement was noticeable, but it was also noticeable that it cached silly things like files you played once in WMP. If it weren't for that obvious silly thing I'd have not made complaints about it here. Now I'm fully aware of the explanations/excuses for how it works in Windows 7 (the performance is better for machines with less memory and HDD's instead of SSDs - which means Win7 is optimized for cheap laptops, while Vista pretty much required and was optimal with beefy desktops).

    One option is to simply build a list of files that you wish to preserve in cache and ensure they are in the cache. Another is to build a tool to profile the load times of (in-&)frequently used apps to see which apps are the ones that would most benefit to having their pages in the cache all the time even if they were very rarely loaded.

    Superfetch's problem really is that it's either purely or largely a page based solution. Efficient caching solution needs to have more profiling information available and possibly also hints to avoid caching up music and video files unless especially told to or if the profiler indicated over time that it would really be a benefit. (eg. some kind of media-composition/editing machine might benefit from frequently used media being cached).

     

    SSD's however somewhat changed the game, so getting a noticeable improvement is going to be bit more dífficult. On the other hand, on desktops SSD's could be used with SuperFetch in "hyper aggressive mode" - eg. when you drag mouse pointed over a game launch shortcut, the superfetch immediately starts loading the files in the order the game would load them if you clicked the icon, and when you moved mouse over another icon, then all that loaded data would be evicted quickly. The problem with this approach however is that unless the SSD SuperFetch has a dedicated DMA* that works without raising CPU interrupts, it could lead to performance degradation for low latency scenarios - such as a Pro Audio workstation. So this type of superfetch would need to be practically implemented in collaboration with Microsoft and the SSD controller makers to avoid CPU involvement.

    edit:* I mean that the OS and CPU wouldn't be very involved in pre-fetching the files, merely just passed a pointer to a pre-fetch page lookup table on the SSD and the SSD would independently pre-fetch and push those files into RAM. Most likely not worth the effort though as this would be as complicated as NCQ implementation I suspect.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.