A Second Shot: Windows Vista SP1

by Ryan Smith on February 27, 2008 12:00 AM EST

What’s Fixed in SP1, Cont

Among all of the fixes in SP1, the biggest and most widely noticed will be the changes Microsoft has made to how Vista copies and moves files. There’s no two ways about it, Vista is slow at copying files - in fact frequently much slower than XP. Microsoft had a good reason for picking the methods they did for Vista but the payoff clearly hasn’t been worth it, so they’ve gone back to the drawing board and modified their file copy methods slightly to improve performance. Vista still won’t perform as well as XP (and we’ll get to why that is in a second), but with SP1 it’s definitely faster than it was under the original version of Vista.

The story of why Vista’s file copy speeds are slow so is a long and interesting one, with Microsoft’s tech blogging guru Mark Russinovich providing a particularly lengthy and descriptive explanation of the issue. If you’re curious as to what the specific details of the situation are, we encourage you to read the whole blog. For everyone else we’re going to take the liberty of paraphrasing and condensing it a bit, so that we can go over the changes to Vista without talking about things at such a low level.

According to Microsoft, there are three issues with the CopyFileEx method in XP that they wanted to correct with Vista.

  1. XP’s buffered file network operations resulted in the file being cached no fewer than 3 times: twice on a client requesting data and once more at the host sending data. This wasted a lot of memory, particularly on the client.
  2. Copying large files would eat up a great deal of memory when write operations couldn’t keep up with read operations (solid state drives in particular are prone to this) and the read data would be cached until it could finally be written
  3. File copying was a synchronous action that couldn’t be pipelined, resulting in poor performance over high-latency, high-bandwidth links; this is one of the areas Microsoft was working to optimize performance under Vista, which included optimizations at the networking level.

Microsoft’s solution to these issues for Vista was to implement a new copying method that used more asynchronous I/O operations, and to stop buffering certain kinds of copy operations. This method does indeed fix the issues that Microsoft had with the XP copy method, but it also introduced new issues that caused Vista’s poor file copy speeds. The problems in particular are that asynchronous I/O can result in out of order write operations that require additional disk head seeks, and that unbuffered copy operations mean that a file is not in memory should it need to be immediately read again after being written (which can occur due to indexing, thumbnail generation, etc). Finally, and the reason that Microsoft believes is the root of most of the Vista complaints, Explorer under XP cheated a bit with file copying operations; it considered the job done once it had finished writing a file to the write cache. Vista meanwhile doesn't consider the job done until it is done writing the file to disk, so Vista will almost never “win”.

So what was changed in Vista SP1 to improve file copy performance? The biggest change is that file copy operations are once again cached most of the time, in effect a near complete reversal of the changes made for the initial version of Vista. Network copy operations are still not cached on the client side because of the double-buffering issue that caching induces. There are still a few differences between Vista and XP such as Vista’s support for larger file I/O operations that Microsoft believes will allow Vista to outperform XP, so it’s not quite a complete return to XP’s copying methods, but now Vista SP1 should be faster than the original Vista and XP much of the time. The only significant loser here are file operations over high-latency high-bandwidth links, as these changes effectively undo Vista’s optimizations for those situations; Microsoft has decided to instead make some additional changes at the network protocol level by adding some new features to SMB2 that deal with the above situation. File operations over such links between Vista clients or Vista and Server 2008 as a result will still be fast, while operations between Vista and older clients (Server 2003, XP, etc) will once again be slower like on XP.

Given the above information, we’ve benchmarked both pre-SP1 and post-SP1 Vista on an assortment of file copy operations to get an idea of what kind of a performance boost we’re looking at. We looked at copy operations with 3 kinds of data sets: a single large 4GB file, a single medium 700MB file, and a 300MB collection of roughly 2000 small files.

Vista File CopyPerformance

Pre-SP1
Post-SP1
Large File (4.5GB)
2:49
2:48
Medium File (700MB)
29.5
24.07
Small Files (300MB)
22.46
21.03
.

The results are not a massive improvement, but they’re also not unexpected. For our 4.5GB file, the copy time is about the same as the file is too large to be completely cached, so it benefits little from these changes. With our medium and small copy tests however we do see an improvement, with the medium copy showing the biggest improvement at 20% faster, and the small copy receives a much smaller but still measurable 7% improvement. With a return to caching however, the biggest improvements will be felt in situations where the file will be accessed immediately after copying. When we attempt to copy the small file collection immediately after a previous copy, the second copy takes only 6 seconds instead of 20 seconds since the files are still in the cache. Under the right situations all of these file I/O changes can create a big improvement in performance, and when we get to our full benchmarking suite we’ll see one such situation.

Vista Network Copy Performance

Large File (2.8GB)
Medium Files (600MB)
Vista RTM - Vista SP1
37.6MB/sec
19.2MB/sec
Vista SP1 - Vista SP1
43.6MB/sec
26.3MB/sec
Vista RTM - Sever 2003
28.6MB/sec
15.4MB/sec
Vista SP1 - Server 2003
39.1MB/sec
23.1MB/sec
.

As for network copy performance, the improvements are still not massive, but interestingly enough they are greater than our local copy performance improvements. Our smallest improvement is with our single file transfer test between 2 SP1 machines at 15%, while our greatest improvement is seen with a transfer between an SP1 system and a Windows Server 2003 system at a whopping 50%. For anyone that has had to struggle with Vista’s poor networking performance (and who is not a victim of MMCSS throttling) SP1 looks to give a very sizable boost in performance. We do need to note however that these results are extremely variable on a system-to-system basis due to factors such as hard drive speed and the network controller used. Testing with other machines in the lab came up with numbers that were sometimes better and sometimes worse, so please don't take these results as universal.

Our final file system benchmark is for handling compressed folders, another sore point that became obvious with Vista after it shipped. Explorer’s speed with compressed folders was absolutely abysmal no matter how much sugar you coated the numbers with, so Microsoft has made some improvements to Explorer along with the aforementioned file I/O changes that will boost performance.

Vista ZIP File Decompression Performance

Pre-SP1
Post-SP1
Explorer
1:07.44
30.21
WinRAR
12.2
9.50
.

The great thing about benchmarks is that if your performance is bad enough, you can both improve your performance a great deal and still have terrible performance at the same time, which is exactly what happened. Compared to WinRAR, Explorer’s decompression speeds are still criminally slow; we have never been nor will start being amused with Explorer’s handling of compressed folders. When it comes to performance, anything is better than Explorer here. The silver lining here is that SP1 has improved WinRAR’s already fast performance by a further and unexpected 28%, making the argument to use anything but Explorer a very easy one.

Wrapping up our look at SP1’s biggest fixes, Microsoft has fixed a data corruption issue with NTFS-formatted removable disks. With the limitations of FAT32 and the implementation of reliable NTFS drivers on Mac OS X and most Linux distros, NTFS has become an increasingly popular cross-platform disk format to succeed FAT32. However, Vista had what we have been told is a moderately occurring data corruption issue with removable disks using NTFS, which made such disks unsafe to use under Vista. SP1 fixes this, though Microsoft is still passively recommending against NTFS for external disks since NTFS was never designed for this use. Instead they’re recommending exFAT, which we’ll get to in a bit.

An installation issue with Vista x64 and certain chipsets has also been fixed in SP1. One of the disk controller drivers in the Windows installer cannot properly handle disk controllers that only support 32-bit DMA, resulting in a BSOD when the controller was requested to do an operation in a memory area beyond the 32-bit limit. Previously the solution was to install Vista x64 with 2GB (or less) of RAM so that it never did this, but now disks with SP1 integrated will not encounter this issue at all. This primarily affects only users of certain NVIDIA motherboard chipsets.

Finally, Microsoft has taken a bite out of Vista piracy with a surprising level of bluntness. SP1 fixes two specific vulnerabilities that allowed Vista to be pirated: the OEM BIOS exploit, and the Grace Timer exploit. It’s notable that Microsoft specifically named the exploits they were fixing, where in the past they simply have made vague references to fixing exploits that allow Windows piracy. Given Microsoft’s strong anti-piracy focus for Windows Vista, we’re a bit surprised they didn’t patch out these exploits sooner. It’s worth noting though that for illegitimate copies of Vista, SP1 does away with Vista’s “reduced functionality” mode; now it leaves all functionality enabled but repeatedly alerts/harasses the user about their Vista installing being unactivated or illegitimate.

What’s Fixed In SP1 What’s New In SP1
Comments Locked

62 Comments

View All Comments

  • whatthehey - Wednesday, February 27, 2008 - link

    The only thing they can do is nitpick about the use of a term like x64, when everybody knows what it means and Microsoft uses it all over the place (i.e. "Update for Windows Vista for x64-based Systems").

    You, sir, add new meaning to the term anal retentive.

    "The sky is falling - someone said x64 instead of http://en.wikipedia.org/wiki/X64">x86-64! Help!"
  • PrinceGaz - Wednesday, February 27, 2008 - link

    They probably use the term x64 because Microsoft used it for the 64-bit x86 version of XP - "Windows XP Professional x64 Edition", to differentiate it from the old 64-bit Itanium version - "Windows XP 64-bit Edition".

    Everyone knows what x64 means (everyone who actually needs to know, anyway), so it makes sense to use it as it is quicker and easier than alternatives like x86-64 or 64-bit x86.
  • Martimus - Wednesday, February 27, 2008 - link

    Is exFAT an open standard? It sounds like a promising File Management system for a non-Microsoft OS.
  • mmjjzz - Wednesday, February 27, 2008 - link

    READ, interest problem found!!

    client: Intel Q6600, 4GB RAM, Vista 64bit
    server: Intel Celeron 2.53, 2 GB RAM, Windows 2003 SP1

    Gigabit network (Jumbo Frames Enabled, SP1 didn't improve anything without jumbo frames enabled)

    Pre SP1 (large file)
    -------
    client (non OS drive) -> Server (share 1) = 43MB/s
    Server (share1) -> client = 6MB/s

    Post SP1 (large file)
    -------
    client (non OS drive) -> Server (share 1) = 45MB/s
    Server (share1) -> client = 33MB/s
    on client, Copying from Share1 to Share2 on server = 900K/s

    Share to share TAKES FOREVER.. i never tested this pre SP1, but i am assuming it is the same
  • gimper48 - Wednesday, February 27, 2008 - link

    I may have missed this in the article. However, some people see it in update some do not. I have vista 64 and it has never come up as an option. Anyone know the methodology to determine who gets it and who does not? Also is the it sp1 only available to technet subscriptions? That kinda screws the small systems admin at a small company. They cannot upgrade all in one shot then.
  • DigitalFreak - Wednesday, February 27, 2008 - link

    No-one is supposed to be getting it via Windows Update yet (except maybe some Beta testers). The fact that it was up there briefly the other day was a mistake on Microsoft's part. It should start showing up some time in March.
  • haplo602 - Wednesday, February 27, 2008 - link

    While you mentioned UEFI, it would be an interesting separate article/guide. With technology description ad current state of affairs.

    Are you planning any such article ?
  • TheJian - Wednesday, February 27, 2008 - link

    I'm wondering about the comment made regarding XP64 being bad for consumers. Why? Myself I'd like to see XP64 vs. Vista64 benchmarks done (games and all). Is there something stopping you from benchmarking XP64? It's been 2.5 years since this article at Tom's:
    http://www.tomshardware.com/2005/08/23/windows_xp_...">http://www.tomshardware.com/2005/08/23/windows_xp_...

    XP64 looked pretty good then, 2.5yrs later it should SURELY be better correct? Why no testing for XP64? Most of Tom's benchmarks show a dead heat for xp32 vs xp64. On Steampowered.com Vista 64bit only counts for 2.5% of their users and Vista total is only 16.5%. Shouldn't you have a go at 64bit XP? Unfortunately they didn't breakdown the XP32 vs XP64 numbers.
  • Ryan Smith - Wednesday, February 27, 2008 - link

    The issue with XP64 is that it is effectively an orphaned operating system on the consumer side of things. It was never even intended for consumer use, it was a slightly retooled version of Server 2003 designed to fill a gap for workstations that needed a 64bit version of Windows. Very few companies in the consumer space are testing their wares against XP64, this goes for both hardware and software. Compatibility problems are still few and far between, but never the less going forward it's only going to get worse particularly when it comes to drivers.
  • TheJian - Thursday, February 28, 2008 - link

    Are you sure? Nvidia's latest WHQL driver is dated Dec2007 with these notes:
    # WHQL driver for GeForce FX, 6, 7, and 8 series GPUs.
    # Added support for GeForce 8800 GTS 512 GPU.
    # Recommended driver for the latest DirectX 9, and OpenGL applications.
    # Numerous game and application compatibility fixes. Please refer to the release documentation for more information on features, driver fixes, and known issues.

    They are still improving gaming with these! I don't see it as Orphaned when people are revolting against Vista. Read the fixes in the readme. There are quite a few issues fixed in 64bit. Don't forget people were buying this OS for years before Vista. Both Intel and AMD were selling 64bit chips before vista for years. People were running XP64bit and still are (if they wanted to use their chip's abilities that is). Is it so tough to throw up some benchmarks for xp64? Is MS telling you not to do it in some agreement like stopping XP SP3 benchmarks from being published in their EULA? Just checked ATI/AMD and their drivers are updated for 64bit FEB 13th! That's just 2 weeks ago and includes the 3870x2 boards.

    If movement in this area picked up (cough up the benchies!) I could see MS backing away from Vista and just re-releasing XP with DX10.1 and Aero Glass which would make Vista pointless. Vista could end up just like WinME. We ended up with Win2k, and for games that wouldn't run in that OS we dual booted to 98-OSR2 :) LOL I see drivers for my chipsets on Intel P35 and Nvidia boards also. I don't see waning support. Same date for Nvidia's xp32/64 drivers so they are developed together (the readme covers both also). It seems to me only Microsoft wants it orphaned. Crappy benchmarks would prove it (or not if they're great!) so lets see some please.

Log in

Don't have an account? Sign up now