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.
- 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.
- 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
- 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.
62 Comments
View All Comments
7Enigma - Thursday, February 28, 2008 - link
It's probably to prevent all the tech calls saying, "Gee golly, I have 4 Giga-bites of RAM, but the screen only says I have 3! Where'd the other one go!".I don't see a problem with doing this, as if you care enough to know how much is actually addressable you probably already know the rest of the story anyway.
sprockkets - Thursday, February 28, 2008 - link
Any word if you can use a non sp1 key with a sp1 disk?Most of us hate vista for some reasons, like it for others. It just happens to be that the reasons why we hate it are more than why we like it, such as the way you have to pick how audio is sent to outputs (i.e. analog or digital, but not both at the same time as in previous versions, also that darn cdrom audio input I need), UAC, the fact that after your initial install of Vista that those 80 updates will then cause it upon shutdown to process, then upon restart will spend even more time processing the updates (albeit it only happens once and sp1 will do it for you, for now that is), and of course, everyone's favorite, why the hell did they have to change things like how to remove programs?
Did SP1 restore the cdrom audio input? Probably not. No, I use it for my TV tuner card which Microsoft feels I no longer need to use, which I can still buy.
And for UEFI, perhaps now we can take control of features that should be in the BIOS, yeah, right (I'm looking at you Intel for not putting in S3 standby support on your D201GLY v1 and 2 boards!).
7Enigma - Thursday, February 28, 2008 - link
Many people use nLite or other programs to slipstream a service pack (among other programs and hotfixes). You can then burn this as a new .iso cd and use that in place of your original disk. Short story:I have a 3 year old system that I never reformatted (I know, the shame). When I built the system SP2 had just come out so my XP disk already has sp2 included. But obviously in 3 years quite a few (100's?) updates and hotfixes have come about and it would be a real pain to reformat and then have to go through all the reboots and installs. Not to mention the chance that during this my system could become compromised from a previous exploit.
So I started hearing about "slipstreaming" and spent some time reading about it. These programs basically create a custom installation disk with exactly what you want (and excluding what you don't want), so that you can reformat the drive, install the slipstreamed version of XP or Vista, and have only a handful of updates (I think I had 8 updates total, and required 2 reboots). This is a fantastic way to start from scratch without spending a lot of time.
RyanVM (at least for XP) keeps an infrequent update pack that I used with my SP2 disk to enable the reformat I described above. Once SP3 for XP comes out you could slipstream it to your existing disk in 20min and be ready to reinstall. Really I'll never go back to the old-fashioned way of hosing a system.
HTH (and I apologize if you already knew this)
kdog03 - Wednesday, February 27, 2008 - link
Well?Ryan Smith - Thursday, February 28, 2008 - link
No. That's a fundamental limit of 32bit operation, it can't be fixed.mcnabney - Wednesday, February 27, 2008 - link
In regard to the network throttling to make room for audio. A gigabit connection will be trimmed back to 80Mbs, 8% of capacity. Anandtech writes:"We’ll fully admit the problem will only affect a small number of users (those with gigabit networks who need high network performance while using multimedia applications), but then we’re exactly that kind of user."
Hmmm. Lets think. What might need more than 80Mps while using audio? Hmmmm. How about, playing HD video off of a local media server?
HaZaRd2K6 - Wednesday, February 27, 2008 - link
I just recently bought an eSATA enclosure for backups (FAST!) and in the article you mention "The only significant loser here are file operations over high-latency high-bandwidth links". Would eSATA be included in this list? Any chance of some numbers to check eSATA performance?trparky - Sunday, March 2, 2008 - link
The only difference between eSATA and SATA is the connector. Everything else is the same, even the data encoding used to transmit it across the wire.ellis - Wednesday, February 27, 2008 - link
Does anybody know of any good benchmarks made measuring the multitasking performance on Vista? (vs. XP?)And I'm not talking about the ability for multi-core optimized applications ability to distribute it's load on several cores, but on the ability to run several demanding single threaded applications in parallell nicely distributed on the avalable cores.
So does anyone know of any test that has focused on this aspect of utilizing a multi-core CPUs?
Perhaps comparing dual-core with quad-core, on XP and Vista?
Griswold - Wednesday, February 27, 2008 - link
I cant think of a single benchmark for this other than the "benchmark suite" they use here at AT sometimes (bunch of apps doing certain things creating alot of load and timing it). But I wouldnt really need that as vista always felt more responsive with multiple heavy load tasks than XP - and it even does so on this almost 1 year old install.I would like to expect MS being able to improve on the far from perfect task scheduler that comes with XP for their new flagship OS. As far as i'm concerned, they succeeded.