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

  • Per Hansson - Wednesday, February 27, 2008 - link

    On the steam survey I think Windows 2003 64 bit is the same thing as XP x64, they share the exact same codebase (even serivcepack and hotfixes) It accounts for 0.73%

    But yes, I agree, XP x64 is a very nice OS
    It is IMO more stable than XP (it is afterall a server OS since it's based on Server 2003 x64)
  • Brunnis - Wednesday, February 27, 2008 - link

    Although more of academical interest, I'm sure I'm not alone in wanting to see the performance difference between an unpatched Vista RTM installation and Vista SP1.

    One pretty serious issue with Vista, that I can't seem to wrap my head around, is the folder types and how they're applied. They actually seem to be applied arbitrarily and without any sort of reason. They also sometimes seem to change without user interaction. I was hoping Vista would somehow address this, but it seems Microsoft is content with how it works.

    Otherwise I'm actually quite happy with Vista. I view SuperFetch as one of its most important features and one that actually makes Vista feel a good deal faster for general usage.
  • amandahugnkiss - Wednesday, February 27, 2008 - link

    in the article: http://www.dailytech.com/article.aspx?newsid=10781">http://www.dailytech.com/article.aspx?newsid=10781

    it was reported that MS was bricking PCs, I would have imagined you guys would have adressed that issue here. At least report if it was still an issue, was a false lead, or what the issue was and what the was that MS implemented.

    Any info on this topic you can share?
  • Ryan Smith - Wednesday, February 27, 2008 - link

    We mention it a bit on the last page; basically it looks like a very small number of computers having problems, but it's hard to cut through the echo chamber effect of the internet. AFAIK that update still hasn't been reinstated on Windows Update though.

    We haven't experienced the issues on any computers we own.
  • amandahugnkiss - Wednesday, February 27, 2008 - link

    My bad, you did indeed mention it.

    I'm curious what the problem was, be it user, MS, 3rd party, etc... I've not seen it and the only place I have heard about it was on the user forum linked in the article.
  • IAMGOOSE - Wednesday, February 27, 2008 - link

    "We’re still waiting on someone besides Apple to start shipping consumer machines (or motherboards) with UEFI support, so this will be an issue we’ll pick up another day."


    Current intel branded boards allow booting from UEFI

    You guys should try it out, in a mini review or something
  • kilkennycat - Wednesday, February 27, 2008 - link

    Heading asks the question.......
  • mechBgon - Wednesday, February 27, 2008 - link

    ...but may I make a suggestion: Vista and WinXP aren't, like, video cards, where framerates are all that matter. I frankly feel that the security advances of Vista are getting important in today's security landscape, and a comparison of WinXP SP3 versus Vista SP-anything deserves to cover that. Not much point in having another 10 frames per second in WoW, after the bad guys dropped an undetected keylogger into your system and stole your WoW stuff to auction it off. ;) Drop me a PM if you want to pick my brain on the subject...
  • yyrkoon - Wednesday, February 27, 2008 - link

    Cant say I agree with your security views. Any OS(with a few exceptions . . .ME comes to mind) is only as good as the user using it.

    Not only that, the 'bad guys' can not 'drop' a key logger onto your system, unless the 'bad guys' you're referring to are in fact yourself. Files do not auto-magically appear on a system by osmosis, they are downloaded by the user using said system whether the user is actually aware of this or not. Setting up a system correctly will fix a lot of this, while common sense computing habit will take care of the rest. This includes setting up proper user/group policies, permissions, etc, and MAYBE using web based email if you're having issues with you email client being exploited in unexplainable ways.

    Been running XP Pro here for the last 3 years or so, and I have to say that since SP2, it has been fairly secure(once again; when set up proeprly), and I would not expect Vista would be any more reliable. Now since I beta tested Vista early on through to RC2, I KNOW for a fact that compared to XP, there ARE performance issues.
  • SilthDraeth - Thursday, February 28, 2008 - link

    You may be a security professional, but I have no knowledge of you on the ATOT security forums. MechBgon however is very active and has a proven record of being extremely knowledgeable. Heck he spends most days trying dissecting this stuff to find out how to fix it.

    I think you are fighting a losing battle if you go up against him...instead try to learn.

Log in

Don't have an account? Sign up now