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

  • siniranji - Saturday, April 26, 2008 - link

    when i apply service pack 1 to my licensed Vista, it turns to
    evoluation version and due date is june 2008
  • siniranji - Saturday, April 26, 2008 - link

    when i apply service pack 1 to my licensed Vista, it turns to
    evoluation version and due date is june 2008
  • shinomen - Saturday, March 8, 2008 - link

    When Vista was first about to hit shelves I was all for upgrading to the new OS. But once I started using it in real world environments, I found that my productivity started to suffer due to the revamped interface, lack of support for some older hardware and software, and added security.

    I understand anything new is going to be a learning experience, but it doesn't help when every move I make is preceeded with an extra step or message of confirmation (are you sure you want to continue, how about now, do you want to continue).

    For example, I'm trying to troublshoot networking issues with a client of mine. I'm use to window key + R , type cmd, press enter, ipconfig /release and the computer does what I want. But with Vista, I have to take the extra step of right clicking the cmd program and running with elevated privilages (I have now found a keyboard shortcut to do the same)

    Or for the same scenario, I need to telnet into the dsl modem. So again, I hit Window Key + R, cmd, telnet. But with windows vista, this is not installed. Ok, now I have to go to add remove programs, windows components, and install the telnet. (I hope I remembered to bring my DVD!)

    I understand that hardware support is largely due to manufacturers writing new drivers to be compatible with the new OS, but there were so many times I would install a peice of hardware (or printer specifically) and there would be no driver support. But because the manufacturer is making no real money off updating the driver and would in fact lose money by going back and writing the driver, they take their time realeasing it in hopes that the consumer will purcahse a newer model that already is supported in Vista. Again, not specifically Windows fault, but windows did change the way drivers are installed or supported (I don't know the techical details why it doesn't work, but I know it doesn't work).

    Software support, you're lucky if you can get the older software to work, (i.e. quickbooks 2006) otherwise just go out and purchase new software. No one likes to have to drop money to upgrade their line of business software just to get back to a functioning state that they were in with Windows XP. (Might not be a big deal with one computer, but when you're talking 5 to 10 computers, the money adds up)

    Performance. If your going to buy a new machine that has higher end hardware, then vista most likely will perform well (not as well as the same machine running xp, but well). But if you're going to take a machine running xp and upgrade it to vista just to take a performance hit, then it is not wise to upgrade. (Also, don't forget that now that you upgraded the old machine to vista, you may need to purchase more ram, and also update any software that is not compatible with vista)

    So, those are my gripes for the people that say Vista is a better operating system, or for the people that say they have had no problems with their vista computers.

    (side note: many times when I ask my pro vista customers what they think about vista, their response is "Oh, I love it, I don't know why people say they have problems, I haven't had any trouble with it". So my response is "Yeah, alot of people with older hardware and software were have compatibility issues", and my customer says, "Oh yeah, I couldn't get my printer to install, so I just bought a new one" ----great if you have the money to "just buy a new one")
  • ufoall - Monday, March 3, 2008 - link

    I was running vista on my E4400 with 2g memory and PCi e .. vista runs very slow after install couples of software.. if i install same software on my xp it runs much faster than vista... vista is a crap compare to oldies windows os...
  • Beartwo - Monday, March 3, 2008 - link

    Since buying a new pc just before christmas I have been plagued with Messenger, Windows mail, Explorer and other internal applications crashing.
    The system is based on an Asus P5K-E mb with Core 2 Quad cpu, 3 Gb of RAM, Nvidia GeForce 8800GT gfx.
    From the first moment I turned the pc on I kept getting these errors. I flashed the bios and installed all the latest drivers (certified ones), but the problems persisted.
    It got to the point where Vista was simply not usable, the error reports I got from Vista were about as useful as a bicycle would be to a fish...
    I am back to Windows XP, with a few less dollars in my pocket and a useless OS sitting in a drawer.

    As far as I am concerned Vista has been a waste of time and money... kinda reminds me of a friend who bought a pc with Millenium preinstalled... sheesh.

  • just4U - Sunday, March 2, 2008 - link

    I've been using Vista64 for 2 weeks now and I must say .. I am very happy with it. I was so leary about moving to a 64bit os and then adding Vista on top of it .. but it worked out fine. It accually seems to be more responsive in windows aplications and load times. Not sure if that's just because it's a fresh install or not yet. Anyway...

    That's without SP1 installed by the way. I've been waiting for the official launch of it instead of beta versions and release candidates.
  • jkantor - Sunday, March 2, 2008 - link

    I don't know what's worse: settling for a world in which software "development" means shipping it before it works - or excusing a monopoly for forcing us to purchase an overpriced upgrade that offers no real improvements over the previous version.
  • Mark Huson - Sunday, March 2, 2008 - link

    I have read somewhere that with SP1, Vista allows the user to install Windows XP from within Vista, and automatically adding the Windows XP install to the bootloader. Is this true?
  • hoelder - Friday, February 29, 2008 - link

    I beta tested Vista and was very dismayed about it's resource hungry attitude and the money I would have to fork over to upgrade hardware so I would not lose any performance. It was not worth it with the enormous sticker price of Vista Ultimate. I still insist that Vista needs 4 GB of RAM (people were laughing at me then) and a SCSI RAID controller with 4 74GB drives RAID 5. And then something amazing happened. I was contracted by a company that used Linux. First, Linux is for geeks, second I get everything I need to do everyday business work. I discovered that for a business solution Linux was a more reliable solution if you looked at Enterprise Linux Desktop by SUSE or Red Hat and has a lot to offer to developers or administrators. So forget Vista, get Linux.
  • mczak - Thursday, February 28, 2008 - link

    This is really lame to just show 4GB even if only 3GB or so are usable. Ok maybe some users got confused if it didn't show all ram installed, but now make them believe all ram is available is better? Now it will be even harder to convince people that 32bit windows CAN'T use 4GB ram... Come on it can't be that difficult to show something like "4GB ram installed, 3GB addressable" instead.
    And the multimedia scheduler is still pathetic. Almost looks like MS didn't want to admit the concept is fundamentally broken, instead they offer some way for powerusers to make its behaviour acceptable...

Log in

Don't have an account? Sign up now