Tech Off Post

Single Post Permalink

View Thread: SuperFetch in windows 7, does it really do any good work ?
  • User profile image

    @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.