Why will Windows Vista perform better?
So theres was a lot of discussion around whether Windows Vista will really perform better that Windows XP.
Well, performance of a desktop OS is a combination of:
Time that an application takes to start and shut down
Time taken by the system to resume after hibernation or standby
To improve the performance of the system while targeting at the above mentioned scenarios, Windows Vista provide 3 kinds of solutions that make use of hardware as well as software combined to give you an improved performance:
What is the performance bottleneck?
HDD – Yes it’s the HDD that actually a bottleneck to good system performance while the CPU speed has gone up enormously. The HDD has been a growing bottleneck to system performance as the capacities of the HDDs have been increasing, and therefore, in order to fetch a complete file from the disk that has different parts stored in various locations of the disk, the spindles need to be physically spun a no. of times in order to locate and fetch the entire file. Especially, in case of laptops and mobile PCs, we see that the disk is almost continuously spinning thereby also consuming most of the battery power. So its actually the disk seeks that take a lot of time even while booting up the machine as the processor is ready but waits for the appropriate files to be sought and fetched from the HDD.
Technology in Windows XP – Prefetch
To improve upon these performance bottlenecks, a new technology that was introduced in Windows XP was Prefetch. Prefetch basically works with the cache manager to monitor the movement of files and directories between the RAM and the virtual memory at the time of system startup or an application startup. It then creates maps of these files and directories for every application and saves them in the windowsprefetch folder with a .pf extension. At the time when the actual application is to be loaded, the cache manager looks for a corresponding map for the application is it exists. It then instructs the memory manager to use the information in this map to preload the related files and directories into the memory. Once the memory manager fetches the files and directories in the memory, the cache manager allows the application to load.
Based on the further functioning of the application, the operating system reviews the contents of the map to match the order in which the files are loaded, and then organizes the files in that order, and saves this information as Layout.ini
file in windowsprefetch folder. It uses this information to defragment the disk from time to time and reorganize the related files to be written in contiguous memory locations on the disk.
So what is Superfetch?
Superfetch in Windows Vista goes a bit further to analyze and record the application usage patterns of different users. As in , it monitors the users’ activities to observe the times at which each application is started and the amount of time for which the application is in use. It then creates profiles of usage for each user, which it uses to prioritize each application (dlls).
How does this help?
The only shortcoming of Prefetch was that – as the memory gets filled up with the files that have been prefethced, if a new application starts, the old application
pages need to be stored back into the pagefile (on the disk) in order to free space for the new files. This happens mostly when the system we go out for lunch etc. and the system is idle. At this time, the idle tasks
(for example some low-priority scripts) take over and are loaded into the memory. In order to free up space for these tasks, the application pages that were in use earlier are swapped back into the pagefile. As a result when the user returns, and tries to execute the application again, it takes sometime before the application becomes active again, as the pages need to be reswapped from the pagefile (On the disk) to the memory.
This does not happen this way with Superfetch. Superfetch in Windows Vista an actually be seen as a set of policies that govern the way the memory manager would work. Using the application-usage profile information that it saved, it allows for the idle tasks to use the memory, but keeps monitoring the activity of these tasks, and as soon as these tasks finish, it quickly re-fetches
the pages of the previously used high priority applications back into the memory that were earlier swapped out by the idle tasks. This helps resuming the old application back faster after lunch! Not even does this help in after-lunch problem, but even during the system startup and resume form standby. It also helps in spinning down the HDD as most of the pages that need to be used are already fetched into the memory!
This technology allows you to use an external USB Flash drive
to be used as additional resource where the pages can be cached from the disk, so that the read performance goes up considerably. This happens because fetching pages from a USB Flash device is considerably faster than seeking data from the harddisk. Furthermore, Windows Vista ensures that data pages cached on the USB drive are the same as those in the virtual memory so that in case the USB stick is pulled out from the system , there must not be any data loss. Even further, Vista ensures that the data saved on the USB sticl is encrypted, so that it may not be retrieved on any other system.
Ready drive is an internal, built-in readyboost system in the hard disk. Vendors like Samsung are shipping hard disks (Hybrid- Hard disk)
that have a built-in flash memory with them of about 128-256 MB or even more. With this, technology, the risk of flash memory getting pulled out from the system is eliminated, thus making it a more reliable form of flash memory. Not only this, this flash memory is a non-volatile cache built into the hard disk, so that even if the system shuts down, the data still remains in that portion of the memory. Ready drive technology allows Windows Vista superfetch technology to decide what pages (dlls) must be buffered in this flash memory so as to be able to boost up the system performance, by spinning down the hard disk. This will prove as a boom for the mobile PCs, as about 50% of the power consumption happens in spinning up the hard disk for random I/O. Even when the laptop is on battery, a command is sent down onto the system, to spin down the hard disk by buffering most of the data in use, on the flash memory. In this case, the hard disk spinning happens only when the flash drive is almost full (which is unlikely unless it’s a large file transaction), or if there is a new read required which is not already on the flash memory!