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
nishzone - Saturday, May 24, 2008 - link
Hi,I'm glad tnat your memory usage is similar to mine and therefore I might finally understand this. You have 2 gig of Ram...I understand that superfetch is the reason free ram is 0 (cache increases as free memory decreases). But why is the memory usage 45%? so around 1 gig?
I also have 50% usage on startup. Is vista using 1 gig memory? There is something I don't understand here because you recommended 1 gig for general users.
Regards,
Nishzone
Dataland - Wednesday, November 28, 2007 - link
I think Microsoft needs a performance reset. As I've said in some previous posts, I think software in general, and Microsoft software in particular, is getting slower at faster rate than hardware is getting faster. And this problem acutely affects Vista. I think Microsoft needs... (Pingback)Performance Reset
http://dataland.wordpress.com/2007/11/28/performan...">http://dataland.wordpress.com/2007/11/28/performan...
Kondado - Saturday, February 10, 2007 - link
I've done my own tests. I sent the same amount of data (51 files, 2,5 GB) once from XP to Samba, then from Vista to Samba (OpenBSD). Then I did the same from XP to XP, and from Vista to XP. XP was always a LOT faster.I would really know if it's the drivers or the stack...
jonp - Monday, February 5, 2007 - link
It seems like the budget system area was a little overlooked in this review of Vista. So I have some questions:"Memory in Vista..." - It appears that acceptable multitasking performance is found somewhere in the 3GB to 4GB memory size area. Many budget systems have only two memory slots and many new ones support dual memory access. This will force budget systems to 4GB which is fairly pricey now and probably will be for some time.
"CPU Performance..." - Your love for anything Core2 Duo shines here. But what about the dual core Pentium Ds? Like the D915 2.8GHz processor. Yes it is Netburst, but also easier on the budget than a Core 2 Duo processor. We need something more specific here in terms of benchmarks/guidelines.
Video adapters - I didn't see anything that talked about integrated video adapters vs. VGA/PCIe video adapters. Are any of the integrated graphic engines, like Intel 950GMA provide acceptable performance for VISTA? How about older video cards? Minimum graphics memory? Graphics engine speed? Again we need more specific guidance here.
Hard drive - You addressed hard drive performance, in a way, in the "Vista Search for Fast Drives Only" section. But again no specific device selection guidelines like: RPM, cache size, average access, size, data transfer rate, ...
Virtualization - It appears that MS forbids the use of virtualization products with Vista Home Basic and Home Premium editions forcing budget users to more costly editions of Vista.
Upgrade or "clean" install? - Not strictly a budget system issue; the web if full of warnings about NOT trying to upgrade to Vista --- that it should only be a "clean" install situation. That upgrading is fraught with too many pitfalls that it isn't even worth trying. And not all editions of Vista are allowed to do in-place upgrades of the XP editions; oh, and you can't do an in-place upgrade of anything prior to XP. See http://tinyurl.com/36ljxv">http://tinyurl.com/36ljxv for some upgrade details.
JarredWalton - Monday, February 5, 2007 - link
Basically, a lot of that falls into areas we are going to look at in future articles. Given that we don't really recommend most people upgrade to Vista yet, the lower-end your system is the less we would consider Vista. Pretty much all of the DX9 NVIDIA and AMD cards do fine with the Vista Aero Glass UI, but IGP solutions are slower. Individual tolerance for the UI will vary; I'm sure plenty will be okay with GMA950 and Glass, while others won't want anything less than a $100 discrete GPU. Oh, and GPU drivers for Vista are still flaky, IMO. :)
HDD, anything 7200 RPM should be fine. CPU, really with a decent GPU the requirements aren't all that much higher than XP. RAM is more important - don't even think about Vista with less than 1GB - but HDD and CPU most people with anything made in the past two years will be fine. Just my opinion there - individual usage and preferences will again play a role.
I wouldn't say 3-4GB of RAM is even remotely necessary for most people. A few will like it, but 2GB is still sufficient for about 99% of people.
Virtualization and Upgrades... I'll have to defer to others there. Again, I recommend discretion, so I would tend towards doing a full backup (Ghost or similar) of any system before doing a Vista upgrade. I believe Gary is about to revert his system for the time being, as Vista has just had a few too many glitches. The number of people that worry about virtualization - really intending to use it, not just for test purposes - is again very small. I think mostly we're seeing the vocal minority complaining. Still, I find it odd that MS even worries about whether or not people run the OS via virtualization - unless the glitches are aggravated by such an environment, which is entirely possible.
jonp - Tuesday, February 6, 2007 - link
Thanks Jarred...you insights are always very helpful and I am glad that these topics will get more focus in the future. Jonjonp - Monday, February 5, 2007 - link
Both of the charts in the Compound TCP section for Windows Vista say "Compact" and not "Compound".duploxxx - Sunday, February 4, 2007 - link
Its probably me that's missing a page or so but could you guys explain what system you used for these tests?funk3y - Saturday, February 3, 2007 - link
HelloI also spent some time testing the network part of windows vista, and I discovered some quite interesting things:
Windows Vista is reducing the network I/O when an application using the audio interface is launched, I discovered this when copying large files over my network.
When I copy large file through the network the average speed is 40 mb/sec and the taskmanager whow 30-50% of network use, as soon as I start an application playing sound (WMP, Skype, Warcraft III, ....) the rate drop to 8 mb/sec and the network use in the taskmanager never go beyond 12.5%
I achieved those test on different hardware, with differents drivers and the results are always the same; it is just impossible to get further then 12.5% of network use while playing a sound.
My guesses are that microsoft voluntary did this, in order to avoid sound crackling. Because of the new driver scheme, bad written drivers having to do many I/O could lead to sound degradation (I had this issue while using my raptors RAID on a NF4 board; making a lot of I/O on the disk just killed the sound quality).
As you where streaming a film while benchmarking, you may have been in this situation. It could be nice if you could rerun some benchmark taking into account all what I have written.
As I am already posting, here are some other consideration about DOS and vista:
-It is just impossible to launch a DOS application in fullscreen mode! This functionnality lack can be really painfull in environnement where DOS application are still well used; I just don't understand microsoft's choice
-I don't think that vista x64 is still able to launch 16 bit apps anymore (keep this in mind before upgrading to x64!)
ministerchief - Saturday, February 3, 2007 - link
I have a "Corsair Flash Voyager 4Gb" usb stick and I can't use it to "BOOST" my system.So, how anandtech could use it ?
Can someone tell me how to use this flash drive with the "READY BOOST" feature.
THX