Superfetch has been tweaked, quite a bit, since Windows Vista. Superfetch is a service that collects file access habits and writes information to C:\Windows\Prefetch in .db(database) files. Additionally it will intelligenty record the time and frequeny of your file access habits. It will then use this information to efficiently place data into the page cache, rather than only being placed into memory when it is first accessed by the user.
With any OS worth using that as any sense of a disk cache, it will place small enough files accessed by disk into free memory space that is not being used to feed applications and the OS itself. With the NT kernal it confusingly reports this memory as "free". On Windows Vista and Windows 7, you can view the amount of data in the page cache in Task Manager. Go to the Performance tab and take a look at the number beside the Cached figure under the Physical Memory section. Cached memory is not shown in the main memory usage monitor, that is what applications are using.
The goal of Superfetch is to intelligently place relevant data into memory before you access them on the disk, to speed up overall operation. It can make disk operations on the first access faster, rather than the second time (since on any other OS it is only placed into available memory space when the disk has already read it once).
In Windows Vista, Superfetch was aggressive, it would start the process of placing data into the page cache as soon as the Desktop was reached and on every interval when memory was not filled. Although it was thrashing the disk, the service runs at the lowest I/O priority possible and hence shouldn't disrupt disk performance all that much.
In Windows 7, Superfetch has changed. The first thing to note is that after a reboot, it will wait 6 minutes before beginning it's caching operation. Secondly, it will not place data into the page cache until there is no memory space free. It will only place the very most accessed data into memory. One will notice that on Vista, that almost all memory space had used after a couple of minutes. In the Free figure in Task Manager, you should have only a small amount of memory truly unused. In Windows 7, you will notice that a much smaller amount of data has been cached and the Free figure is much more liberated. On my system, Windows 7 only caches 600MB of data on it's first run, out of 2GB of my memory, minus 200MB for processes and 50MB for kernal usage. The page cache eventually fills up after a couple of hours of me accessing all my data.
Overall, it is less agressive and tries to be more efficient. I felt the service was more useful in Vista. The disk activity did not noticeably disrupt my system in anyway. The benefit I found to the quickness of the service initializing right after a reboot, is that usually when I go to open Firefox (first thing I do after a reboot), Superfetch would have already cached it and hence it would be read from memory. Now it waits six minutes to do anything.





Reply With Quote











