The Impact of SuperFetch on Vista Memory Usage and Performance
As we've already explained, the premise behind SuperFetch is simple - it's an intelligent software mechanism that monitors frequently used pages and does its best to keep them in memory. In other words if you run Photoshop a lot, SuperFetch will take notice and try to keep Photoshop.exe and its associated libraries in main memory so long as you don't need that memory for anything else. The real world impact of SuperFetch is tremendous: the more memory you have, the more your frequently used applications will load very quickly.
SuperFetch works like this: Vista will load anything it needs to load in memory first, and any applications you manually run will also be loaded into memory. Any memory left over is fair game to be used by SuperFetch as a cache of frequently used pages. Vista keeps track of what memory pages are frequently requested and what files they are tied to, and based on that data SuperFetch will populate as much free memory as it can with pages it believes you will need in the future. This data contains both frequency and temporal history, so not only how often but when you run these applications will influence what SuperFetch does at any given time.
SuperFetch has a number of counters and data structures that have to be loaded into main memory to make this whole process work. The end result is that SuperFetch is part of what makes Vista's memory requirements greater than XP's, but if you've got the memory to spare the payoff is huge.
While it's very difficult to benchmark the impact of SuperFetch well, in our usage of Vista if you have enough memory it is a tremendous ally. Honestly SuperFetch is the biggest reason, in our opinion, to move to the x64 version of Vista so you can use even more memory. Although we found that 2GB of memory is still quite passable under Vista, the new sweet spot if you happen to multitask a lot is 4GB - in no small part due to how well SuperFetch utilizes the additional memory. Do keep in mind that you'll need to make sure your motherboard has proper BIOS support for 4GB and also make sure Vista x64 has driver support for all of your peripherals before committing to the move.
In an ideal world, you'd have more than enough memory for SuperFetch to go out and pull all of your regularly used pages into main memory so that all applications would load without waiting on your hard drive. In reality however, the vast majority of computers have less than 2GB of memory, and when multitasking there's simply not that much room in memory to keep other large applications cached. SuperFetch wouldn't be a very useful technology if it kept cached pages active in memory even when you needed that memory for other applications, and thus if you run out of memory SuperFetch will begin swapping its cached pages out to disk from main memory.
SuperFetch is intelligent however; as soon as you are done with the application that evicted cached data from main memory, SuperFetch will bring those frequently used pages back into main memory.
Repopulating the SuperFetch buffer is a time and disk intensive process; think about how long it takes to copy 1GB of data off of your disk and you'll have a good idea of how long it will take for SuperFetch to recover evicted data. With a good amount of historical data, SuperFetch will often take a couple of minutes after Vista starts up to begin pulling data into memory from the disk, which means you'll be hearing quite a bit of disk activity as it does this. This also means that a faster disk will help SuperFetch behave more seamlessly, although you're still better off spending money on more memory to keep SuperFetch from having to page back to disk.
Quick Recommendations
How much RAM do you really need for Windows Vista? We recommend a bare minimum of 1GB of memory for all Vista users, 2GB if you're a power user but don't have a lot running at the same time, and 4GB if you hate the sound of swapping to disk. While SuperFetch definitely makes applications load faster when it works, it's still difficult to say for sure how effective it is without more testing time. Routines can sometimes change, so it will be interesting to see how fast SuperFetch can adapt to new usage patterns. We're also not sure how frequent gaming (which can easily use several GB of data in a session) will affect SuperFetch, so that's something that we will have to assess more as time passes.
As we've already explained, the premise behind SuperFetch is simple - it's an intelligent software mechanism that monitors frequently used pages and does its best to keep them in memory. In other words if you run Photoshop a lot, SuperFetch will take notice and try to keep Photoshop.exe and its associated libraries in main memory so long as you don't need that memory for anything else. The real world impact of SuperFetch is tremendous: the more memory you have, the more your frequently used applications will load very quickly.
SuperFetch works like this: Vista will load anything it needs to load in memory first, and any applications you manually run will also be loaded into memory. Any memory left over is fair game to be used by SuperFetch as a cache of frequently used pages. Vista keeps track of what memory pages are frequently requested and what files they are tied to, and based on that data SuperFetch will populate as much free memory as it can with pages it believes you will need in the future. This data contains both frequency and temporal history, so not only how often but when you run these applications will influence what SuperFetch does at any given time.
SuperFetch has a number of counters and data structures that have to be loaded into main memory to make this whole process work. The end result is that SuperFetch is part of what makes Vista's memory requirements greater than XP's, but if you've got the memory to spare the payoff is huge.
While it's very difficult to benchmark the impact of SuperFetch well, in our usage of Vista if you have enough memory it is a tremendous ally. Honestly SuperFetch is the biggest reason, in our opinion, to move to the x64 version of Vista so you can use even more memory. Although we found that 2GB of memory is still quite passable under Vista, the new sweet spot if you happen to multitask a lot is 4GB - in no small part due to how well SuperFetch utilizes the additional memory. Do keep in mind that you'll need to make sure your motherboard has proper BIOS support for 4GB and also make sure Vista x64 has driver support for all of your peripherals before committing to the move.
In an ideal world, you'd have more than enough memory for SuperFetch to go out and pull all of your regularly used pages into main memory so that all applications would load without waiting on your hard drive. In reality however, the vast majority of computers have less than 2GB of memory, and when multitasking there's simply not that much room in memory to keep other large applications cached. SuperFetch wouldn't be a very useful technology if it kept cached pages active in memory even when you needed that memory for other applications, and thus if you run out of memory SuperFetch will begin swapping its cached pages out to disk from main memory.
SuperFetch is intelligent however; as soon as you are done with the application that evicted cached data from main memory, SuperFetch will bring those frequently used pages back into main memory.
Repopulating the SuperFetch buffer is a time and disk intensive process; think about how long it takes to copy 1GB of data off of your disk and you'll have a good idea of how long it will take for SuperFetch to recover evicted data. With a good amount of historical data, SuperFetch will often take a couple of minutes after Vista starts up to begin pulling data into memory from the disk, which means you'll be hearing quite a bit of disk activity as it does this. This also means that a faster disk will help SuperFetch behave more seamlessly, although you're still better off spending money on more memory to keep SuperFetch from having to page back to disk.
Quick Recommendations
How much RAM do you really need for Windows Vista? We recommend a bare minimum of 1GB of memory for all Vista users, 2GB if you're a power user but don't have a lot running at the same time, and 4GB if you hate the sound of swapping to disk. While SuperFetch definitely makes applications load faster when it works, it's still difficult to say for sure how effective it is without more testing time. Routines can sometimes change, so it will be interesting to see how fast SuperFetch can adapt to new usage patterns. We're also not sure how frequent gaming (which can easily use several GB of data in a session) will affect SuperFetch, so that's something that we will have to assess more as time passes.
105 Comments
View All Comments
Ryan Smith - Saturday, February 3, 2007 - link
That's up to Vista, it benchmarks a flash drive to make sure it's fast enough to be effectively used as a ReadyBoost cache. If ReadyBoost won't engage, then your drive isn't passing one(or more) of their tests.mlambert890 - Friday, February 2, 2007 - link
How is the PC hemmhoraging marketshare to the Mac? You've got to be kidding. Their marketshare in 06 rose from a pathetic 4.4 to a somewhat less pathetic 4.8. Thats with ALL of their ridiculous hype, ALL of the asskissing from the press (including you guys now I guess?) and ALL of the armies of lunatic "Mac priests" that pollute every forum.Its hillarious that you would position this tiny growth in a share that declined steadily for 22 years until it hit rock bottom at like 3% in 2003 as a "hemmhorage". I have to wonder why you would characterize it that way. To be honest, it reeks of bias.
quanta - Friday, February 2, 2007 - link
Think about it, ReadyBoost is treated by Vista as random access memory, to store temoprary contents than can change very often. Considering typical USB flash drive only has 100k write cycle, you will need to replace it very soon. Worse yet, when the flash drive is gone, so will your critical data at the worst possible time. With the hardware requirement of Vista, no amount of wear levelling is going to help.Ryan Smith - Friday, February 2, 2007 - link
No, this is wrong.ReadyBoost is a write-through data cache handled by the SuperFetch system; when enabled SuperFetch uses it as another cache location optimized for small files. Based on the information we've seen, it's used primarily to store DLLs and other static and semi-static data that is needed an intermediate amount of time(not important enough to spend valuable RAM, important enough to cache), with highly dynamic data sent to SuperFetch or the hard disk to avoid unnecessary wear out. It will most certainly put wear on flash memory, but it seems unlikely that it will put 51TB of write-wear(the amount of data that needs to be written on a 512MB flash card to write over all bits 100k times) before several years out.
Of course, this is as according to Microsoft. We don't really know what exactly is being stored on a ReadyBoost drive at any given moment, however we have no reason to believe that Microsoft isn't really taking efforts to minimize writes. We'll find out if/when flash memory starts wearing out.
mlambert890 - Friday, February 2, 2007 - link
We'll see. Please remember that the 100k write cycle is an average, that the flash is used as a small cache only, and that write leveling of COURSE will help before making assumptions.Ive been beating up flash for YEARS thats still going. There are moves to literally put OS's on flash based hard drives. Hybrid drives already use the same concept as ReadyBoost (and are also supported on Vista).
Using flash as a cache for magnetic media is not some untested concept that is going to lead to global data destruction.
MS must have really destroyed their mindshare that so many armchair scientists are just fully willing to believe that theyve figured out ALL the stuff that the "idiots" in Redmond dont realize. Give a little credit to the armies of PhDs that work on at least the basic concept for this crap. Maybe implementation gets flawed by the realities of release cycles and budgets, but BASIC CONCEPT is typically sound.
dugbug - Friday, February 2, 2007 - link
UAC is like a firewall -- chatty at first (during installs and configurations), but once you have set up your system you will hardly ever hear from it. This should be obvious to the authors.And for that matter, the 6-operation file delete they discuss in the beginning was for deleting a file on a shared desktop (meaning a delete was for all users). This is commonplace for enterprise and workplace users, it should be no surprise that a file used by others would require permissions to delete. Though Im glad the number of operations was greatly reduced.
As to the comments about vista being sluggish? Perhaps it is RAM? I have 2Gb and vista runs without any slowdown at all. Once you use it for a while you won't go back to XP.
-d
LoneWolf15 - Friday, February 2, 2007 - link
Untrue. Enthusiasts use lots of things like the Control Panel, MMC console, etc. and these all require UAC every time. Currently, I also have startup programs on my beta-test box that UAC blocks. This would be fine, if UAC had a feature saying "Yes, I know what this program is, let it run every time all the time" and be done. But, UAC doesn't have this option, so a user has to allow the program to run every single freaking time they boot their machine.I've tried changing the program properties so that it runs as Administrator; that hasn't solved the problem. I turned off UAC, which gives me a lovely annoying red-X shield in the system tray that every so often decides to warn me with a popup balloon that UAC is turned off and I could be in danger, so it's annoying even when turned off, and there's no easy way around it. Enthusiasts do a lot with their computers, and what they do is likely to increase their number of UAC prompts. Bottom line: Unlike OS X's methods, Vista's UAC happens far more often, and is far more annoying. And because it doesn't require a password (like OS X) and is just a click-through, I'll put money down that within a year, it will be worthless, as the average user will learn to click through it without reading a single bit of info.
funk3y - Sunday, February 4, 2007 - link
The red cross can also be disabled for sure; on my computer, which is a member of a domain I recieve no error message at all, even if UAC & co are disabled.haplo602 - Friday, February 2, 2007 - link
Realy. What's the hype all about ?SuperFetch - trivial change to caching mechanisms. Anybody that would require it would have already implemented it in *NIX systems. This is a purely desktop user feature to hid some processing overhead. There's nothing new about this that would prevent implementation in w2k already except MS incompetence ...
ReadyBoost - So the new standard is to have a permanently attached USB stick to have some performance ?
Compund TCP, Receive window auto tuning - I laughed like mad. So they finaly made a proper implementation of something network related? End even then Vista is SLOWER. I'd suggest take a stand-alone NIC that Vista nad XP have drivers for themselves and test it. Should rule out driver bugs.
I/O improvements - so I make an app that makes a high priority high capacity I/O operation (say 1GB) and you can go for lunch till the system is anyway usable. Seriously. I/O in small chunks makes perfect sense in multitasking environments since you have more entry point and can adjust the stream on OS level and tune performance. That XP or Vista are stupid enough to do this is their fault. I guess MS will hype this as the next best thing in a future OS ?
All in All every feature hyped in the article does not deserve a Marketing Name(tm) because it is a normal concept. So we have a shiny new bigger and slower OS that is hiding this behind hyped features. F.E. memory compression could very much improve system performance without relying on external devices (ReadyBoost).
mlambert890 - Friday, February 2, 2007 - link
Just admit your bias man. There is NOTHING MS could do that would cause you to give them kudos. I spend my days arguing with guys like you for a living (unfortunately) and its just exhausting.I could point you to REAMS of documentation of all the crap that has been rewritten and overhauled in Vista, but whats the point? You want to hate it so hate it.
Its sad that technology debates are STILL religion for so many after all this time :(