Wednesday, March 26, 2008

Say it with an 'F'

The last 6 weeks have been a blur. What in the world could possibly have eaten my time so completely?

Two words: Windows Vista.

For the past 6 weeks, I have been hitting Microsoft's latest OS pretty hard. I did a series of upgrades to a desktop machine and contrary to rumors, Vista did not deactivate my license due to "too many changes". I did go ahead and format and reinstall from scratch after this, just because I thought that would help with my problems. I had no trouble re-activating Vista after a format, either.

That's the good news.

The bad news? Pull up a chair.

My conclusion is that many of the "performance enhancements" and "OS improvements" are really just band-aids on an Operating System that at some point during surgery, severed a main artery. The OS bleeds resources, when it's not draining them dry.

Some of this is the fault of driver manufacturers, and shame on them for it: they've had 3-5 years to work with various iterations of Longhorn and figure out 64-bit technology, and most drivers are developed on an aggressive cycle of updates. They should be used to a state of constant revision.

Some of this is nascent technologies, not properly addressed: I have now tried two different USB keys on two different machines. Both say they can be used with ReadyBoost, but neither ever works--both Vista machines spit them out as "too slow" to be used.

Another technology change here is that 64-bit hardware is having to dumb itself down at random to run "older" 32-bit applications: in other words, your programs might pick up on the fact that they can now use 64-bit technology, but the software that runs your keyboard or your IM program is running in an entirely different, lesser (32-bit) space that can support it.

And then we have bad habits, carried over. In the days of Windows 95/NT, we got in the habit of using "temp" files for better performance. This is all well and good: if you have to use a file a lot, may as well put a copy of it in one place where it's conveniently easy to reach. Maybe even let Windows create junk files of its own, scratch space for the crib notes that keep it running smooth.

Because computers are stupid, Windows has a hard time cleaning up after itself. Temp folders would get cluttered with old and unused junk, and users started finding themselves suddenly running out of hard drive space. We quickly learned where to look and how to delete the junk, and so Microsoft moved it for us, hiding more "goodies" in the "Prefetch" folder in XP.

We've had 7 years with XP now, so we learned the Prefetch trick, too. In the meantime, we'd learned that Windows leaned on the hard drive a little more than we realized: this little thing called "Virtual Memory" (or "Paging") let Windows reserve a huge chunk of the hard drive for itself on a regular basis. Think of it as a bucket for your RAM: whatever's moved in and out of the RAM, let's give that information some breathing room on the hard drive so it can be loaded in and out of the RAM as we need it. Depending how you set it, the OS could grow or shrink this hard drive chunk to anything it wanted to (and on some machines, it'd spend more effort playing with the size of this space, than actually using the space). All this in addition to Temporary Internet Files, a separate space on the hard drive where the browser can store all of its clutter and junk (and which XP also has a nasty habit of ballooning to unmanageable proportions)

Enter Superfetch, the one-stop shop for performance. From what I can understand, if there's a spike in system resources--say, for example, you open Microsoft Word right after you launch your browser--Superfetch pounces on whatever's being used and starts caching it like mad, stashing it on the hard drive in an easy-to-reach place, and using whatever it can to speed up whatever you just asked it to do. It takes a quick look at what resources are left on the machine, and grabs them all, overriding your typical OS operations to take command of your computer.

This is probably not so bad for Microsoft Office, or even Photoshop, but it's truly terrible for gaming because it means that suddenly your game is in a neck-and-neck battle with Vista for whatever resources you have left. Superfetch is like a petulant child with games that aren't aware of its existence: "It's mine! I'm taking it all! I was gonna give it to you, but now you tried to take it, and you can't have it any more!" I started noticing that my games would thrash like mad on the hard drive, then suddenly crash, often right after launch. Once I stopped Superfetch, these troubles went away.

I can only think that Superfetch is a way to treat memory leaks or instabilities generated by resource demand. In effectiveness, I can only compare it to your doctor noticing you're looking anemic, and prescribing a course of leeches.

I had a unique situation in which I was going to have one video card for a while, and then be able to add a second for SLi. I thought this would be a perfect chance to share the benefits with other people and really find out how much of a performance gain you could see when you upgrade your video. I ran benchmarks under three settings for a bunch of games, then put the SLi configuration together and ran the exact same settings again. Unfortunately, I had to scrap all of my efforts because my performance with two video cards actually went *down* than when I was just running with one. I'd carefully checked my configuration, confirmed with the hardware manufacturers (of the machine and the cards) that I had it all set up correctly, and still thought I was losing my mind. Unfortunately, no: either the drivers and hardware aren't ready for Vista, or Vista just hasn't figured out how to deal with them. Either way, I have more amazing hardware than I've ever had before in my life, and I'm back to constant blue-screens, just like the days of Windows 98...

I've also spent the last six weeks saying, "I finally think I've fixed the problem! This one thing I tried just might do it!" and being proven wrong, time and again.

System Specifications:

Laptop
Sager 9620 (aka Clevo D910C)
Intel Q6600 Quad-core Processor
4GB (2 x 2GB) RAM, dual-channel configured
dual 160GB HDs, 7,200RPM @ 3.0GB/Sec, SATA2, configured for RAID 0 (performance)
dual nVidia 8700M, 512MB video RAM (1,024 total), in SLi mode
Windows Experience Index (WEI): 5.7

Desktop
ASUS A8N SLi Deluxe motherboard
AMD Athlon X2 4400+ processor (dual-core, 64-bit)
4GB (1x1GB) RAM, dual-channel configured and tightly timed to manufacturer's recommended specifications for the motherboard and Vista
dual 160GB HDs, 7,200RPM @ 3.0GB/s, SATA2 (not in RAID)
dual nVidia 8800GTS 512MB video RAM (1,024 total), in SLi mode
Windows Experience Index (WEI): 5.2