Hasta la vista, Vista (Part 1)

When my SH8 arrived with Vista preinstalled, I wasn't exactly sure what to expect. I was well aware of all the bad press Vista has received, but it wasn't clear to me how much was deserved. Clearly some of the complaints were from Windows enthusiasts who had built unreasonably high expectations during the seemingly endless Vista development cycle. Others were obviously from Windows haters who would find reasons to blast the latest "evil spawn of M$" -- sometimes without even trying it. Some reviews were just bizarre! I recently saw an article that was critisizing Vista because the folks that run Facebook had screwed up its IPv6 DNS entry and because Vista defaults to IPv6, Vista couldn't access Facebook. I'm not fond of Microsoft, but even I wouldn't try to pin that one on them.

So I was determined to give Vista a fair chance. I was somewhat relieved to discover that it wasn't quite as pure and total Evil as the Internet had lead me to believe. There are a few aspects of Vista that I found were significant improvements over XP. The Tablet PC features are significantly improved over XP Tablet Edition -- particularly the handwriting recognition. Too many years of keyboarding have totally destroyed my handwriting skill and the fact that Vista could make sense of my "chicken scratch" is most impressive. I also like Vista's "Start" menu redesign (compared to XP). I'm not a fan of the Start menu idea in general, but if it's going to be there, that cascading abomination in XP is a pretty good example of how not to design one. Last but not least, stylistically Vista is a big improvement over the "childrens toys" style of XP. Sure, transparency and animation are a bit overused by default, but both can be reduced through performance settings.

There are a few minor features that show some good insight (like disk space bar graphs under drive icons in Explorer), but I'd be hard pressed to say that any of those would be difficult to live without. For the most part, Vista seemed to me like Windows XP with a fresh coat of paint and all the furniture rearranged. Most everything I'm used to in XP is still there (once you find it), it just looks a bit nicer. The irony here is that if Microsoft really had limited themselves to that (a fresh new UI on top of an XP core) and released it a year or two earlier, Vista upgrades would probably be flying off store shelves.

But no, Microsoft didn't stop with the UI. They attempted to solve two core problems -- performance and security -- using what appear to be "bolt-ons" instead of going after the root cause. In the automotive world, a "bolt-on" is a performance enhancing accessory that is easily installed and doesn't fundamentally change how the engine operates. UAC and SuperFetch are perfect examples of Vista "bolt-ons". Much has already been written about UAC so I won't go into detail here other than to say that the media criticism of this mechanism is completely valid.

SuperFetch, however, has not been as widely discussed. To understand what it does, one has to understand a little bit about how Windows programs work. Program code lives in two places: executables (.EXE files) and dynamic link libraries (.DLL files). The original idea was that if a particular function could be used by two or more programs, it could be put into a DLL and then only loaded into memory once. All programs that needed the function would share the same copy. This worked well under Windows 3.1 for about a week and a half :) Then someone came along and fixed a bug in one DLL and another program that was depending on that bug suddenly "broke", thereby ushering in the era of "DLL Hell". Solutions have ranged from DLL "wrappers" (that try to force identical end behavior regardless of library version) to simply installing private versions of what were supposed to be shared libraries.

The end result is that when you click on that .EXE file icon, Windows loads its code and then finds a long list of DLL functions that it wants to use. Windows then has to locate the DLLs that provide each function, load them into memory, then tell the main program where they live. And since DLLs can use functions in other DLLs, this process can go on for quite some time before all the needed functions have been copied from disk to RAM. Microsoft's own Office apps are some of the worst offenders in this respect and recent versions have gotten sound criticism for the time it takes to "launch" Word or Excel. To make matters worse, the press has used "launching applications" as a primitive benchmark of system performance.

It's not surprising that Microsoft would want Vista to be faster than XP on this crude benchmark. The problem is that there are no good shortcuts. Vista has to load the EXE and all its DLLs and each DLL's DLLs and that takes time. Enter SuperFetch. SuperFetch's creators came up with the idea that if they could predict what application you are going to want to run at any point in time, they could "read your mind" and load that application's DLLs into memory before you actually run the application. That way when you do launch your app, most of the DLL functions it needs are already in memory so it is up and running much more quickly. It what software developers would call a "clever hack", but like most clever hacks, it looks better in theory than in practice.

The fundamental problem here is that Vista has to be able to accurately predict your work pattern. I don't know about you, but I can't even accurately predict my work pattern so how is Vista going to pull that off? When Vista guesses wrong about what I'm going to do next, I get no performance improvement. But it's worse than that, because while I was working on my previous task, Vista was busily thrashing the disk and killing both performance and my laptop battery while it loaded up a bunch of DLLs that I ended up not needing. This is one of the main reasons why experienced Vista users won't even consider running with less than 1 GB of RAM and generally consider 2 GB to be the practical minimum for good performance. I'm told that SuperFetch can be turned off, but it's not an obvious setting that many users will find. In fact, since what SuperFetch is doing isn't even something that some users will understand, many will chalk it up to "Vista is a slow memory hog".

For me SuperFetch was the most noticeable performance loss during routine activities. Other Vista changes such as extra code layers in the file system and windowing system have a noticable impact in benchmarks but are less noticable in day to day use where the computer has plenty of time to catch up while it waits for you to think. There are definitely times when Vista feels less "snappy" than XP, but I can't say it impacted productivity the way SuperFetch did.

The bottom line is though I don't see any compelling reason to upgrade an XP machine to Vista, neither did I see a compelling reason to downgrade my pre-installed Vista back to XP. Little did I know that once I tried to go beyond email, web surfing, and PowerPoint things were going to get ugly.

Superdave: HastaLaVistaVistaPart1 (last edited 2008-06-25 13:32:15 by localhost)