Tech-Hounds.com

Because gamers play games, not benchmarks





Vista's Background Tasks

As we mentioned earlier (and user's will no doubt notice), Vista uses - some say need - more resources than Windows XP. Though many users will likely point to the use of Aero, this graphics side of Vista actually runs about the same whether you use Aero Glass, Basic or the standard classic 'Windows' user interface. What about services and other background processes? This are the more likely culprits. Windows XP has about 43 services - not including third party services. In comparison, Windows Vista has about 120 services. That's about three times as much. Of course, not all of these services runs at the boot up, however the number of services (and process) running will likely be higher with Vista than it is with Windows XP.

In addition to services, Vista has more background tasks as well. For instance, Windows Defender. This program will monitor your system in real time for file and configuration changes to guard your Windows installation against spy ware and other malware. So, it acts pretty much like an antivirus software. In addition to Windows Defender, you can also find the usual suspects of background tasks - Internet Connection Firewall, Automatic Updates, System Restore - also available on Windows XP.

Ordinarily, you would want to turn off these 'features'. They tend to take up space on your hard drive (System Restore) and may read and write data to the hard drive in the background (Automatic Updates and System Restore). These background tasks may influence results in a storage performance, so as a general rule, you should turn them off before doing any benchmarks. 

I/O Prioritization in Vista

One improvement Microsoft likes to point out with Vista is I/O Prioritization. Just like application / process priority, I/O Prioritization allows the operating system to prioritize which I/O tasks should be completed first or take precedence over others. Consider this situation - you want to open a file on your hard drive, but at the same time you're listening to an MP3 and is in the process of copying a folder with large amount of files from one drive to another. I/O Prioritization will prioritize I/O so that you can quickly search for the file you want to open, but still allows the MP3 player to stream data and file copying to resume though at a slightly slower pace.

From Microsoft's I/O Prioritization in Windows Vista whitepaper:

"When a user interacts with an application that accesses a file while other threads in the system are also creating I/O requests, the storage system might choose to service the system threads so the system can maintain a higher overall throughput. When responsiveness is considered, the user’s I/O is given higher priority. This causes the application to be more responsive, even though overall I/O throughput might decrease. If the system thread’s I/O is serviced first at the expense of the application’s ability to make progress, the user perceives the system as slower, even though throughput is actually higher."

Now some might say, isn't' that what command queuing are for. Well, here's another interesting little tidbit, still from the same document.

"The NCQ feature of the Serial ATA (SATA) protocol is an example of a hardware queue that could be extended to incorporate priority in a meaningful way. However, rather than proposing SATA NCQ Priority processing as a solidly defined I/O hierarchy strategy, strong momentum exists to make it only a recommendation for action. This makes the device responsible for trying to deliver a better quality of service for high-priority I/O while it balances overall throughput of outstanding NCQ commands with the shortest possible completion times on targeted I/O but does not provide the device with any context other than a general recommendation in the form of a priority value. The current proposal is so general that actually no requirement exists for a drive to process high-priority I/O any differently than if the drive was not sensitive to the priority bit at all. Consequently, all NCQ drives can claim to support Priority NCQ without actually being required to deliver better quality of service for high-priority I/O."

Here is a reminder on just what is Native Command Queuing and Volume Write Back cache. Volume Write Back cache enables multiple I/O requests from the host (controller) to be grouped into fewer requests and written from the cache to the volumes at defined intervals. Native command queuing acts in a similar manner, but goes further by also reordering commands for better throughput. We'll see later on how I/O Prioritization affect benchmarks results. 

RAM: Cache not Resource

Now its time to turn to higher levels of I/O - memory. Windows Vista introduced a more advanced method of prefetching data used in Windows XP dubbed SuperFetch  Just what does it do? Much like Prefetch in Windows XP, it will speculatively load application data ahead of time (prefetching) so that application load faster. How is it different from Windows XP Prefetch. Well, in addition to being 'smarter' - remembering your PC usage habits, SuperFetch goes one step further in doing its job. Here's a snip from Ask the Performance Team's blog, explaining Vista's SuperFetch and ReadyBoost:

"Many people tend to think of RAM as some sort of resource, and when it starts getting used up, they believe that they have a problem.  In reality however, RAM is more like a cache.  If your system is only using a small percentage of your cache is a huge waste.  Imagine how your processor would work if its L2 cache never used more than 25% of its capacity.  L2 cache is a small amount of high-speed memory that allows for high-speed access to the system's most commonly accessed data. In previous versions of Windows, the Prefetcher wasn’t very aggressive in populating RAM. With Windows Vista however, SuperFetch tries its best to use as much RAM as it can, because if you have it you might as well make use of it. "

In other words, SuperFetch will use any available memory on your PC, filling it with data you might / will need. So, when you start an application, the data it needs is already in RAM, and Windows doesn't need to access data from the slower hard drive. But what if the application uses lots of memory? Or you start an application that SuperFetch isn't aware and haven't Prefetch the data for?

Again from the same page:

"...if you have multiple programs that are using lots of RAM, this could still cause system resource depletion, however you would be able to see that in the Memory Usage graph in Task Manager.  If you disable SuperFetch, then Windows Vista behaves more like Windows XP in terms of the Prefetcher."

 

Above are two shots showing RAM usage just after you enter the Windows desktop. RAM usage is pretty high at the beginning, but becomes lower after a short time has passed (about 40 seconds on our setup). The high RAM and page file usage is normal since Windows needs to start up processes and applications when you start the desktop. After those applications and processes have finished starting up, things settle down a bit. At this point, Vista actually behaves pretty much like XP. Why is this important to know, well - again you'll see the reason later on. 

[Previous Page]
[Go to top]
[Next Page]
Disclaimer and Privacy policy.