I’ve been spending most of my time lately conducting in-depth research into how Windows 7 works, in preparation for my next book. In the process, I’m discovering stuff that simply doesn’t become apparent to a casual tester. Case in point: Back in 2007, I looked at Windows Vista Home Basic and determined that it could run well on an older machine with limited resources, including 512MB of RAM. I never tried it with Vista Ultimate, nor would I have bothered. And since I don’t have that 2002-vintage test machine set up, I haven’t repeated those tests with Windows 7.
Earlier this week, I fired up a virtual machine running Windows XP SP3 so I could test upgrade scenarios with Windows 7. I couldn’t do a straight XP-to-Win7 upgrade, so I added a new virtual hard drive and installed Windows 7 in a dual-boot configuration. After making a few notes on how the setup process worked, I put the VM aside and went on to other work.
A few hours later, I went back to that new Windows 7 installation to look at a few details, and that’s when it struck me: This virtual machine was configured with a mere 512MB of RAM, and yet I hadn’t noticed any slowdowns during setup or in operation. Even more startling, I realized that I had inadvertently installed the 64-bit edition of Windows 7 Ultimate in this VM. But the most eye-opening moment came when I looked at Task Manager’s performance tab. I've pasted a screen grab of the memory gauge here.
The x64 edition of Windows 7 Ultimate running on just over 200MB of RAM? That was a pleasant surprise. I was also surprised to see that this clean install was using less than 9 GB of disk space in this VM. With my curiosity piqued, I configured a new VM using the same settings and did a clean install of Vista Ultimate, giving me a good baseline for comparing XP to its successors. Here are the stats for all three operating systems, with memory usage measured after all update operations had completed and the system had been idle for at least one hour:
XP | Vista | Win7 | |
RAM (MB) | 150 | 299 | 216 |
Disk (GB) | 5.7 | 14.3 | 8.6 |
As you can see, on this low-resource configuration Windows 7 uses dramatically less RAM than Vista, and also has a smaller hard-disk footprint. A few configuration notes can help put these results in perspective:
The numbers and charts don’t really tell the full story, though. With identical configurations, Windows 7 was dramatically faster at starting up and shutting down than Vista, and some routine tasks that would grind the Vista machine to a halt completed without incident on the Windows 7 machine.
Just for comparison’s sake, I reconfigured each system to include 1024MB of RAM. With the extra RAM available, the delta between the Windows 7 and Vista VMs narrowed dramatically, although the 64-bit edition of Windows 7 still used less RAM than Vista. On the Vista system,. this upgrade made a noticeable difference, whereas the Windows 7 system performed about the same.
Clearly, the Windows 7 development team has taken a close look at performance and disk footprint when resources aren’t abundant. I suspect that when Vista was being designed, this was an afterthought, with the notion that cheap RAM and hard disks would make those machines obsolete. They didn’t account for netbooks or for the impact of solid state drives, which offer capacities that are much smaller than equivalent rotating media.
Why does Windows 7 use so much less disk space than Vista? A very small amount of the savings (much less than I expected) is in program code. The biggest savings is from the preallocated volume shadow storage space, which holds System Restore points and backs up files via the Previous Versions feature. On my Vista virtual machine, this feature was using more than 4.6 GB of disk space. Under Windows 7, the system reserved less than 400 MB.
This attention to performance when resources are less than expected on a modern desktop PC potentially has positive implications for netbooks and other cheap PCs. I might have to haul that old 2002-era Pentium 4 out of mothballs and see how it handles Windows 7.