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

  • Griswold - Wednesday, February 27, 2008 - link

    Unless you are using vista NOW, you're not qualified to claim knowledge about performance issues NOW.
  • mechBgon - Wednesday, February 27, 2008 - link

    I think you should brush up on Windows Integrity Control and Kernel Patch Protection (for x64). These mandatory access controls are > users.

    Also, you are sadly incorrect in thinking that malware can only get onto a system with user cooperation. As the 4th-ranked SiteAdvisor reviewer worldwide (by total reputation), I have a fair amount of insight on the subject. ;) Between trusted sites being hacked and turned malicious, Mpack/Icepack-type exploit suites and vulnerable third-party software that people don't think to update, there's plenty of need for proactive security and mitigation.

    You like WinXP? Great. For a 7-year-old OS, it can be secured fairly well, if you want to, and I even have tips to help with that: http://www.mechbgon.com/build/security2.html">http://www.mechbgon.com/build/security2.html But it's time for OSes to be more secure by default, in my opinion. The latest Security Intelligence Report from Microsoft showed WinXP SP2 is 2.5x more likely to have malware detected by the Malicious Software Removal Tool than Vista SP-zero, to throw one statistic out there.

    Food for thought. I haven't seen much at AnandTech yet on that aspect of Vista.

    Microsoft MVP ~ Windows Shell/User
  • kmmatney - Wednesday, February 27, 2008 - link

    I don't see exFAT being useful right away unless windows XP is updated to support it.
  • Staples - Wednesday, February 27, 2008 - link

    Vista SP1 mostly has all the updates that MS has released over the past year on Windows Update. I did not notice a difference either and I installed SP1 a few weeks ago. If this was a vanilla install I was installing it over, I am sure I would notice quite a few improvements. I have been using Vista Home Premium since Jan and it definitely had some problems then. Since about July, the drives were mature enough and other than the slow slow file copying (which now still is slower than XP), everything has been running well for months.
  • KeypoX - Wednesday, February 27, 2008 - link

    On both laptop and desktop :( but i didnt really have any problems before... or after.
  • johnsonx - Wednesday, February 27, 2008 - link

    "That experience has been unified somewhat with SP1, now the x86 environment can install the x64 version of the OS (but ____ the other way around, interestingly enough)."

    I do think a 'not' goes in that blank.

    (btw, none of the comment buttons like B, I, U, Quote, etc. are working for me atm)
  • InternetGeek - Tuesday, February 26, 2008 - link

    I've been using SP1 on Vista Ultimate and it does bring some improvements. It took about one hour to install without any trouble at all. I simply started it and one hour later it was up as running.

    In general I find my laptop to be more responsive (Toshiba P105-S921). It restarts faster and comves alive from suspend faster as well. Applications in general feel the same, though tonight I'll play Oblivion and get a more "objective" feel of it. I used VS.NET 2008, Sql Server 2005, Photoshop CS2, Office 2007, DVDFab Platinum, Alcohol 120%, iTunes/WMP for media.

    Div 6.8 stopped working all together after applying 6.1. It either crashes while analyzing the subtitles or while encoding. The movie is Transformers.

    In general, I find that SP1 does bring good things for Vista on which, in general, I'm having a better experience than on XP.
  • aguilpa1 - Wednesday, February 27, 2008 - link

    From that list you don't use any heavy duty applications, so yes you probably wouldn't notice a difference...
  • Spivonious - Wednesday, February 27, 2008 - link

    Photoshop, SQL Server, and VS2008 aren't "heavy-duty" applications? Just what is heavy-duty in your opinion?
  • Griswold - Wednesday, February 27, 2008 - link

    I bet using his favourite browser, posting crap like that in comments like this, is what he considers "heavy-duty".

Log in

Don't have an account? Sign up now