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
thebrown13 - Thursday, February 1, 2007 - link
This is TOTALLY false. Microsoft allows content providers to do what they want with their content. Again, THE CONTENT PROVIDERS DECIDE WHAT THEIR CONTENT PLAYS ON. MICROSOFT DECIDES NOTHING.MAIA - Thursday, February 1, 2007 - link
The architecture is still x86 with 64-bit extensions. The correct naming should be 32-bit x86 and 64-bit x86. Although some vendors use the x64 "slang", this only serves to create more confusion, making people believe it's a different architecture. More, editors and reviewers should use the correct definitions, they also have an educating factor which have to live up by a good standart.Ryan Smith - Thursday, February 1, 2007 - link
It makes little sense on our part to use something different than Microsoft's own terminology here when talking about Vista. The x86-64/EMT64/AMD64 versions of Vista are all called Vista * x64, so we're going to be consistent on using Microsoft's naming to avoid possible confusion among Windows versions.Myrandex - Thursday, February 1, 2007 - link
Eh I don't know how x64 can get confusing, but x86_64 is pretty typical as well.smitty3268 - Thursday, February 1, 2007 - link
Actually, it is a new architecture that just happens to be backwards compatible with x86. That is why there are twice the number or registers available and not just the same amount doubled in size. You're right that x64 is not the correct name, (it's technically called x86-64) but what does it matter? Everyone knows what it means.Gunlance - Thursday, February 1, 2007 - link
I wish I could agree about the new installer. My experience with trying to boot windows vista so far is worse than when I learned how to put NetBSD on an Apple G3.In fact I am still trying to get into the Windows Vista setup as I type this comment. I have been up all night :( I simply just don't get it. Every OS I have ever put on my desktop at least boots, and the vista beta's installed fine. Ugh.
The article was great! Heh. It has made me a bit more frustrated though. Because here I am with vista but still only being able to read about.
erwos - Thursday, February 1, 2007 - link
Your OpenGL performance numbers are radically higher than what Tom's has. Could you comment on the drivers and installation that you used?Ryan Smith - Thursday, February 1, 2007 - link
Normally I tend to avoid commenting on anything involving competitors, but...Assuming I'm looking at the right article here, they were using the Catalyst 8.31.100.3.2.1 driver, which was released back in December. We were using the Catalyst 7.1 driver(version # 8.33.something). ATI did not include an OpenGL driver until 7.1(and just barely at that).
ktgktg - Thursday, February 1, 2007 - link
I'm surprised that the article didn't mention how much ReadyBoost could lower the boot time. A member of notebooreview forums claimed that http://forum.notebookreview.com/showthread.php?t=1...">he lowered the boot time on a laptop (slower HD) from 80 to 43 seconds (including POST) with a 2 GB SD card. Remember that http://en.wikipedia.org/wiki/Comparison_of_memory_...">SD cards are slow compared to USB and CF. Although they're all slow compared to RAM, they have the benefit of storing the data until next boot.SuperFetch seems to be just another reason for using standby mode.
yacoub - Thursday, February 1, 2007 - link
Any word on FireFox compatibility with Vista? That is, does it run just as flawlessly as it does under XP x86 and x64?Just wondering. The comment on the Conclusions page about IE 7+ being the new standard for Safari is what made me think to ask.