does anyone here use a large ssd for main and a smaller for grunt work?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Superfetch is the lowest priority and will not kick out existing files in RAM to make room for superfetch.
Currently held cache files are released periodically automatically and by default. Disabling superfetch does not change that.
Since superfetch does not load programs but individual files, overall it will result in significant gains.
With no superfetch, RAM does not magically free itself. Files stay in cache until they are forced out. Superfetch is competing with files already there, except on a fresh boot, which is not common.

You can't. What in the world makes you think that superfetch doesn't provide huge performance gains?
That I would need microbenchmarks to discern any difference between it on and off. I disabled it a long while back, used the PC for a week, turned it back on, used it, turned it back off...and the onoly difference I noticed was more HDD usage shortly after login.
Do you have any idea just how fast ram is?
Yes, I do. Spare RAM gets filled whether Superfetch runs or not. After the first read of anything, I expect it to stay in RAM until I've read several gigabytes more files, without accessing that one again. Windows handles this quite well, with or without Superfetch.

1. You completely disregard rebooting. (it takes a while to run enough programs to fill the ram)
Rebooting occurs when security updates force it. That's not very often. Sleep has been the default for big vendors for many years, and is now a default for Windows itself. I know two people that shut down their computers after every use. Brother and sister, both over 70. So, yes, I disregard rebooting.
2. For superfetch to compete with caching the following need to be true:
a. Caching needs to be forever (it isn't; its timer based)
No, caching is use based, and basically is forever. If you leave your PC untouched for days, not going to sleep, it will still be using spare RAM for cached files. Superfetch is actually made to partly tackle that as a problem: if you are away from your computer, but it has kept on running, it likely has files filling the cache that you don't care about, so your personal use pattern gets a cold cache, because the OS itself doesn't care where the file request came from.
b. prefetching needs to have higher priority then caching and discard existing cache to replace it with prefetched cache (superfetch doesn't do it, it has the lowest priority)
No, the thread itself is low priority, so that it doesn't slow down other I/O. The loaded data itself having lower priority would make it useless for one of its main purposes, which is to replace cached files you don't care about, with ones that you do care about.
c. The algorithms have such an atrociously bad guess rate that merely setting caching to be forever provides superior performance.
No, merely that your assumption that cache frees after X time is wrong. On a long-running system, Suerfetch will be replacing already-cached files.

It's not that the algorithms are faulty in general, but that they can be useless, as the benefit is based on assumptions about usage that will not always be true. The only programs I can think of that I don't have running all the time, from login to shutdown, are those that can make use all of my RAM and then some, and as such, that I don't want Windows trying to pre-cache for me, while I'm busy with something more important than a video game. Actually, there is one exception to that, LibreOffice, but it's CPU-limited on startup, anyway, so gets no benefit.

If your usage pattern fits Superfetch's assumptions, that works well: data that you recently accessed may not be the most recently accessed arbitrary data, and you would like to come back and pick up where you left off, many hours ago, or even days, as if it were minutes, even if there has been activity that gets in the way of that in the mean time. Think of a corporate environment, in particular, where after-hours backups or virus scans can pollute the cache. Without Superfetch, you'd come back to sluggish PC, who's cache is filled with a random selection of scanned files from the drive. With Superfetch, you can come back, and have most of what you had before you left already loaded for you.

RAM speed is measured in nanoseconds.
HDDs and SSDs aren't. Several files from a HDD could cause you to wait hundreds of milliseconds. From a SSD, just several milliseconds, maybe up to tends of milliseconds. As stated, the contents of the RAM were already replaced, and it has to go to the drive.

I'm not against Superfetch (Vista's rushed implementation, maybe, but not 7's), but it's not a panacea, and only helps if your usage pattern fits certain assumptions. A substantial portion of users' usage patterns do fit those assumptions, especially in businesses. It's a good feature, and they should keep it in and improve it over time. If your usage doesn't fit its assumptions, though, it will do nothing for you.

Never attribute to incompetence that which is caused by malice.
Their recs were not suitable for a single SSD system either. Disabling defrag service for example... win7 never sets defrag schedule for SSDs anyways and the service only runs when its scheduled, NOT on bootup.
What about Vista? If it was only for 7, did Intel's people know SSDs were being skipped, when they initially did it? I just don't see the malice.

And they backed down on ALL 3 issues though, with the superfetch one they changed the wording from disabling it outright to disabling it only for the SSD.
Which is good for the HDD, but that still leaves the recommendation that it be disabled for the SSD, and the SSD can do several IOs per millisecond, so the benefits aren't all that great, which is probably also why MS themselves turn off based on some device property or performance metric.

P.S. http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx
Be default, Windows 7 will disable Superfetch, ReadyBoost, as well as boot and application launch prefetching on SSDs with good random read, random write and flush performance. These technologies were all designed to improve performance on traditional HDDs, where random read performance could easily be a major bottleneck.
(...)
Will Superfetch be disabled on SSDs?

Yes, for most systems with SSDs.

If the system disk is an SSD, and the SSD performs adequately on random reads and doesn’t have glaring performance issues with random writes or flushes, then Superfetch, boot prefetching, application launch prefetching, ReadyBoost and ReadDrive will all be disabled.

Initially, we had configured all of these features to be off on all SSDs, but we encountered sizable performance regressions on some systems. In root causing those regressions, we found that some first generation SSDs had severe enough random write and flush problems that ultimately lead to disk reads being blocked for long periods of time. With Superfetch and other prefetching re-enabled, performance on key scenarios was markedly improved.
 
Last edited:

Zap

Elite Member
Oct 13, 1999
22,377
7
81
i originally was trying to reduce the amount of times i had to do a secure wipe but apparently these drives dont keep dropping in speed after they reach a steady state as someone above noted.

With Trim the performance should recover enough that it isn't noticeable unless you're a benchmark queen. :whiste:
 

taltamir

Lifer
Mar 21, 2004
13,576
6
76
With no superfetch, RAM does not magically free itself. Files stay in cache until they are forced out. Superfetch is competing with files already there, except on a fresh boot, which is not common.

From what I know, this is wrong.
Without superfetch ram DOES magically free itself. Cached files are booted after a certain amount of time has passed since they were last accessed.

As for the rest, we are repeating the same arguments now so this isn't going anywhere anymore.
 
Last edited:

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
From what I know, this is wrong.
Without superfetch ram DOES magically free itself. Cached files are booted after a certain amount of time has passed since they were last accessed.
The file(s) with the oldest access times will be the ones to be kicked out of cache when the RAM is needed for anything else, including new files, enough zero pages, or whatever else. It's very much like a HW cache, just more abstracted. Vista and 7, at least, will keep stuff there pretty much forever, just like Linux, FreeBSD, and by extension, OS X...so long as that RAM isn't needed for anything else, and no new files are accessed.

http://channel9.msdn.com/Shows/Going+Deep/Windows-NT-Cache-Manager-Molly-Brown around 11:30-13:00 (12:20)
Also, http://channel9.msdn.com/shows/Going+Deep/Windows-NT-Cache-Manager-Molly-Brown-Part-II/

Modified data follows different rules, and is periodically flushed, after it either hasn't been accessed for some time, or if the program requests it.