There is a LOT of confusion about readyboost and superfetch. Let me try and clear this up once and for all. I'll assume complete unfamiliarity with memory management and caching.
Memory is king - it has stupendously fast read/writes, sequentially and random. In a perfect scenario, *everything* would be in memory, but its quite expensive.
Hard disks are cheap, mass storage. They have decent sequential transfer rates, and horrendously slow random transfer rates, due to their mechanical nature. In a perfect scenario, HD's would only be used for storing files that are rarely accessed. The HD is a massive bottleneck to overall system performance, and has not kept up with the advances to the rest of the PC.
Flash memory (including USB sticks) are cheap, but relatively low capacity. They have fairly slow sequential speeds, but random speeds are dozens of times faster than hard disks. In the perfect scenario, only tiny (measured in kb) files, that are often, randomly accessed, should be on it.
Using all three together, Vista is trying to do it's best to maintain those perfect scenarios, where the data always comes the fastest, most appropriate place possible.
First, the XP/2000 way of doing things:
RAM <-> Disk
In RAM, you have active program code, and "free" memory consists of the disk cache. The cache contains the most recently accessed files, no matter what they are - first in, first out. If you access data stored in the cache, it's there for you essentially immediately.
The retroactive nature of the XP disk cache severely limits it's usefulness - the cache speeds up load times dramatically - but the program was already just loaded, or else it wouldnt be in the cache in the first place! But if you frequently use the same data/applications, that data should always be in the cache. But ANYTHING can take over this cache, even things you normally wouldnt want cached - running a virus scanner, a large bitorrent download etc, will completely wipe it out, filling it with useless data, *no matter how much memory you have*, putting you back at ground zero, having to load everything from the slow hard drive. This is a less than ideal situation.
RAM is a finite resource, and when its filled to capacity with code, not only is there no longer room for a decent disk cache, the hard disk gets used as spare RAM, via the "page file". The lack of cache is bad, but using a HD as RAM is worse.
A HD is so much slower than RAM, that it makes a very bad substitute. Worse yet, in the typical one drive scenario, the same hard drive has to read the new files being written into RAM at the same time it is writing files to disk OUT of ram, and this is a complete disaster, and slows the system down to a crawl.
Preventing these bad situations from ever occuring is pretty much the *sole* reason you want as much RAM as possible - in XP. But even with several GB of RAM, you will still have to hit the HD for files that arent preloaded, and that cache can still contain useless data, wasting a valuable resource.
The point of SF and RB in Vista is to change all that:
RAM <-> Flash <-> Disk
^
|
Disk
The first, most crucial change, is to proactively cache data in RAM, instead of waiting for the user to load it first - this is what superfetch is all about.
On just about any given system, the same applications and data is accessed over and over. Often at different times of the day, or on different days of the week. Ideally, the programs would already be in memory before you open them up.
So instead of a dumb cache, superfetch is a smart cache, constantly managing your memory to make sure what you need is already in memory *before* you use it. So rather than waiting for you to load a program/file off of the hard drive before caching it, superfetch analyzes which programs you use most often, and when you use them. It will use this information to manage and preload the cache behind the scenes, so hopefully what you need is already there. And remember, it's not *hogging* your memory by doing so - disk cache is still considered "free" space.
And it works really, really well - I can confirm this from personal experience. During the day, I primarily do email/office work...but at night I game. Every morning, every program I use is already precached. Even the images from websites I visit often are cached. And at night, when I fire up COD2, it comes straight from memory, and loads damn fast. Not only that - since I'm always playing on the same multiplayer maps, even THOSE are precached. The difference is night and day - as long as you have enough memory, the HD is significantly less of a bottleneck.
Just as important as preloading the cache is properly maintaining what's in it - so superfetch ignores the data you *don't* want cached - such as the activity of a virus scanner or disk defragmenter. Putting the right things in is important, but keeping them there is just as important.
So in essence, even though any new OS will naturally use more memory than the older ones, Vista manages that memory so much better than not only is that less of an issue, but overall system responsivness is much improved.
Furthermore, there is much more to gain in Vista by adding a ton of memory. Rather than sit idle and useless as it often would in XP - ALL your memory can be put to a good use, at all times.
But it still can't completely take the hard drive out of the equation. Memory is still a finite resource, and no matter how smart the cache is, there will still be files that it doesnt know to preload, and memory can still be consumed by running programs. Readyboost is the second part of that equation.
Compared to the HD, flash still beats it out in random I/O speed due to access times; accessing randomly placed, *small* files quickly.
This is important in two scenarios:
1) It a good secondary disk cache. For instance: browser caches, bitorrent files, web servers, email, game files, etc.
Many of these things are rarely accessed, so they won't be precached by superfetch - so no matter how much memory you have, there is still a use for readyboost. At it's heart, this is ALL readboost really does - but your disk doesnt just contain data files, it's also spare memory in times of need.
2) Most page file activity is small and random - just what the USB stick is good at. So even though technically, it does not serve as a substitute for memory, by serving as a cache for disk, which contains that page file, it can help out quite a bit.
But flash is *nowhere near* the speed of memory for random I/O. But its at least a dozen times faster than a hard disk. And the more it can read from flash, the less it has to swing that head around. It doesnt completely alleviate the nightmare swapping situation, but it's still a vast improvement.
And adding a usb stick is cheap, easy, and ANYONE could do it, no matter how much of a noob they are. So while anyone can get some benefit from RB, the most benefit is going to be seen by those with low memory, and those who can't or won't upgrade memory - And they're often the same people.
They have little ram disk cache, and a LOT of page file activity.
But there's still a few issues here to be addressed:
1) HD's are faster than flash for sequential I/O. And RB is aware of this - it will get out of the way and let the HD do it's thing if the HD can do it better.
2) USB sticks can be pulled out at any time - And again, RB is ready for this. Everything that is written to RB is either already on disk or in memory (since that where it came from), or written first (page file). You won't lose any data from cached files, your system won't crash from the loss of cached memory pages. Although since it can be pulled out while the computer is off, it can't rely on it being there when it boots or comes back from standby - so the cache will have to be rebuilt.
On top of that, all of the data cached on the stick is encrypted - so you don't have to worry about someone stealing your stick and going through the cached files.
And not only is it encrypted, it's also compressed. The benefit of this is twofold - first, you can fit more cached data on the stick. Second - compressed data is smaller, and can be transferred to memory faster.
So that's how it stands right now - the two technologies combined go a lot way towards taking the HD out of the equation, and they do it intelligently and safely. Any overhead consumed by them is far outweighed by it's benefits except in the most obscure applications. It's a vast improvement that is difficult to measure. But thats just the beginning, it is going to get even better in the near future:
1) Since one of the primary uses of flash is digital camera storage, which is entirely sequential in nature, most flash cards, and many USb sticks are tuned for seq speed, not random speed, which is inappropriate for readyboost, so a new class of USB sticks is emerging, that is tuned for random I/O, just for RB. So if you want to buy a stick exclusively for RB, right now, here is the one to get:
http://www.newegg.com/Product/Product.asp?Item=N82E16820233043
2) But it doesnt *have* to be external! Better than even the most well tuned USB stick would be an internal drive. A large, fast SATA flash drive would be good. Flash right on the motherboard, with direct memory access - even better. And they're coming *very* soon. They'll be tuned for random access, with less overhead since they won't need USB or encryption. And since they aren't going anywhere, they can cache across boots and standby. They'll put the best USB sticks to shame.
3) Superfetch works good managed automatically, but in the future, you'll have the option to customize it somewhat. This will be of great use to gamers - since games are often linear in nature, superfetch as it stands wouldnt cache them - but if you can tell it in advance, it can cache it in advance, and load times can be drastically reduced even more, with enough memory.
Memory is king - it has stupendously fast read/writes, sequentially and random. In a perfect scenario, *everything* would be in memory, but its quite expensive.
Hard disks are cheap, mass storage. They have decent sequential transfer rates, and horrendously slow random transfer rates, due to their mechanical nature. In a perfect scenario, HD's would only be used for storing files that are rarely accessed. The HD is a massive bottleneck to overall system performance, and has not kept up with the advances to the rest of the PC.
Flash memory (including USB sticks) are cheap, but relatively low capacity. They have fairly slow sequential speeds, but random speeds are dozens of times faster than hard disks. In the perfect scenario, only tiny (measured in kb) files, that are often, randomly accessed, should be on it.
Using all three together, Vista is trying to do it's best to maintain those perfect scenarios, where the data always comes the fastest, most appropriate place possible.
First, the XP/2000 way of doing things:
RAM <-> Disk
In RAM, you have active program code, and "free" memory consists of the disk cache. The cache contains the most recently accessed files, no matter what they are - first in, first out. If you access data stored in the cache, it's there for you essentially immediately.
The retroactive nature of the XP disk cache severely limits it's usefulness - the cache speeds up load times dramatically - but the program was already just loaded, or else it wouldnt be in the cache in the first place! But if you frequently use the same data/applications, that data should always be in the cache. But ANYTHING can take over this cache, even things you normally wouldnt want cached - running a virus scanner, a large bitorrent download etc, will completely wipe it out, filling it with useless data, *no matter how much memory you have*, putting you back at ground zero, having to load everything from the slow hard drive. This is a less than ideal situation.
RAM is a finite resource, and when its filled to capacity with code, not only is there no longer room for a decent disk cache, the hard disk gets used as spare RAM, via the "page file". The lack of cache is bad, but using a HD as RAM is worse.
A HD is so much slower than RAM, that it makes a very bad substitute. Worse yet, in the typical one drive scenario, the same hard drive has to read the new files being written into RAM at the same time it is writing files to disk OUT of ram, and this is a complete disaster, and slows the system down to a crawl.
Preventing these bad situations from ever occuring is pretty much the *sole* reason you want as much RAM as possible - in XP. But even with several GB of RAM, you will still have to hit the HD for files that arent preloaded, and that cache can still contain useless data, wasting a valuable resource.
The point of SF and RB in Vista is to change all that:
RAM <-> Flash <-> Disk
^
|
Disk
The first, most crucial change, is to proactively cache data in RAM, instead of waiting for the user to load it first - this is what superfetch is all about.
On just about any given system, the same applications and data is accessed over and over. Often at different times of the day, or on different days of the week. Ideally, the programs would already be in memory before you open them up.
So instead of a dumb cache, superfetch is a smart cache, constantly managing your memory to make sure what you need is already in memory *before* you use it. So rather than waiting for you to load a program/file off of the hard drive before caching it, superfetch analyzes which programs you use most often, and when you use them. It will use this information to manage and preload the cache behind the scenes, so hopefully what you need is already there. And remember, it's not *hogging* your memory by doing so - disk cache is still considered "free" space.
And it works really, really well - I can confirm this from personal experience. During the day, I primarily do email/office work...but at night I game. Every morning, every program I use is already precached. Even the images from websites I visit often are cached. And at night, when I fire up COD2, it comes straight from memory, and loads damn fast. Not only that - since I'm always playing on the same multiplayer maps, even THOSE are precached. The difference is night and day - as long as you have enough memory, the HD is significantly less of a bottleneck.
Just as important as preloading the cache is properly maintaining what's in it - so superfetch ignores the data you *don't* want cached - such as the activity of a virus scanner or disk defragmenter. Putting the right things in is important, but keeping them there is just as important.
So in essence, even though any new OS will naturally use more memory than the older ones, Vista manages that memory so much better than not only is that less of an issue, but overall system responsivness is much improved.
Furthermore, there is much more to gain in Vista by adding a ton of memory. Rather than sit idle and useless as it often would in XP - ALL your memory can be put to a good use, at all times.
But it still can't completely take the hard drive out of the equation. Memory is still a finite resource, and no matter how smart the cache is, there will still be files that it doesnt know to preload, and memory can still be consumed by running programs. Readyboost is the second part of that equation.
Compared to the HD, flash still beats it out in random I/O speed due to access times; accessing randomly placed, *small* files quickly.
This is important in two scenarios:
1) It a good secondary disk cache. For instance: browser caches, bitorrent files, web servers, email, game files, etc.
Many of these things are rarely accessed, so they won't be precached by superfetch - so no matter how much memory you have, there is still a use for readyboost. At it's heart, this is ALL readboost really does - but your disk doesnt just contain data files, it's also spare memory in times of need.
2) Most page file activity is small and random - just what the USB stick is good at. So even though technically, it does not serve as a substitute for memory, by serving as a cache for disk, which contains that page file, it can help out quite a bit.
But flash is *nowhere near* the speed of memory for random I/O. But its at least a dozen times faster than a hard disk. And the more it can read from flash, the less it has to swing that head around. It doesnt completely alleviate the nightmare swapping situation, but it's still a vast improvement.
And adding a usb stick is cheap, easy, and ANYONE could do it, no matter how much of a noob they are. So while anyone can get some benefit from RB, the most benefit is going to be seen by those with low memory, and those who can't or won't upgrade memory - And they're often the same people.
But there's still a few issues here to be addressed:
1) HD's are faster than flash for sequential I/O. And RB is aware of this - it will get out of the way and let the HD do it's thing if the HD can do it better.
2) USB sticks can be pulled out at any time - And again, RB is ready for this. Everything that is written to RB is either already on disk or in memory (since that where it came from), or written first (page file). You won't lose any data from cached files, your system won't crash from the loss of cached memory pages. Although since it can be pulled out while the computer is off, it can't rely on it being there when it boots or comes back from standby - so the cache will have to be rebuilt.
On top of that, all of the data cached on the stick is encrypted - so you don't have to worry about someone stealing your stick and going through the cached files.
And not only is it encrypted, it's also compressed. The benefit of this is twofold - first, you can fit more cached data on the stick. Second - compressed data is smaller, and can be transferred to memory faster.
So that's how it stands right now - the two technologies combined go a lot way towards taking the HD out of the equation, and they do it intelligently and safely. Any overhead consumed by them is far outweighed by it's benefits except in the most obscure applications. It's a vast improvement that is difficult to measure. But thats just the beginning, it is going to get even better in the near future:
1) Since one of the primary uses of flash is digital camera storage, which is entirely sequential in nature, most flash cards, and many USb sticks are tuned for seq speed, not random speed, which is inappropriate for readyboost, so a new class of USB sticks is emerging, that is tuned for random I/O, just for RB. So if you want to buy a stick exclusively for RB, right now, here is the one to get:
http://www.newegg.com/Product/Product.asp?Item=N82E16820233043
2) But it doesnt *have* to be external! Better than even the most well tuned USB stick would be an internal drive. A large, fast SATA flash drive would be good. Flash right on the motherboard, with direct memory access - even better. And they're coming *very* soon. They'll be tuned for random access, with less overhead since they won't need USB or encryption. And since they aren't going anywhere, they can cache across boots and standby. They'll put the best USB sticks to shame.
3) Superfetch works good managed automatically, but in the future, you'll have the option to customize it somewhat. This will be of great use to gamers - since games are often linear in nature, superfetch as it stands wouldnt cache them - but if you can tell it in advance, it can cache it in advance, and load times can be drastically reduced even more, with enough memory.