The previous System Setup Secrets column generated a boatload of responses and sparked some great questions-and-answers. But some of the follow-on topics were extremely complex and practically begged for a more in-depth discussion on their own: Windows' Virtual Memory was at the top of the list. That's what this column is about.
In that previous column, I said that you can go to "... My Computer, Properties, Performance, Virtual Memory, set virtual memory the way you want. In systems with abundant disk space, I place the swap file out of the way on the second partition, and set a minimum size equal to the amount of RAM, with no maximum size set."
Here's why: Virtual memory is a "swap file" on your hard drive that acts as an extension of your RAM. When Windows runs short of RAM, it uses the virtual memory space to free up RAM by temporarily moving -- swapping -- chunks of data temporarily to your hard drive until they're needed again.
On its own, Windows creates what's called a dynamic swap file: the file grows and shrinks as needed. (In fact, if your hard drive has ever suddenly come to life with a long burst of activity that has no apparent cause, it's probably Windows automatically adjusting the size of your swap file.)
Trouble is, growing and shrinking the swap file takes time and CPU cycles, and prevents your hard drive from doing anything else until the resizing is complete. And as a swap file grows, piecemeal, it can end up scattered in several locations across your hard drive. Combined, the extra housekeeping needed to monitor and manage the size of the file and the time lost in dealing with swap file fragments can make Windows seem sluggish.
Take Control Of Your Virtual Memory
One way to help overcome this is to manually set a generous minimum swap file size. This ensures you have plenty of virtual memory to start with, and that Windows won't have to waste time growing and shrinking the swap file with every app you run. Plus, if your swap file doesn't have to grow or shrink, it can be defragged once and then will tend to stay that way. With a large-enough, unfragmented (contiguous) swap file, Windows can spend its time using the swap file instead of managing it: Your system may operate noticeably faster -- especially if you use a defragger like Norton's Speed Disk that places the swap file at the front of your hard drive, for fastest access.
In systems with more than one physical hard drive, you also can manually assign the swap file to whichever drive is the fastest, further boosting performance (the swap file doesn't have to be on the drive that contains Windows). And on systems with more than one drive or partition, you also can move the swap file to a location where it won't be included in your routine backups; this can make your system backups go faster, and save space in your backup media. (The swap file doesn't need to be backed up, ever.)
That's all fine, but several readers wrote to say they either couldn't change their virtual memory settings (the option was grayed-out) or that the settings would not "stick" and would revert to the default settings on reboot.
Can't Reset Memory?
In a normally-installed and properly-operating copy of Windows, you can manually set the virtual memory as you wish. If you are unable to set or retain manual virtual memory settings, it suggests you either have a nonstandard copy of Windows or that something's broken or improperly installed. Your best bet is to back up your data and start over with a fresh copy of windows so it will be properly installed and operating.
One exception to this is with the upgrade to Win98SE: When you upgrade, Win98SE will at first ignore any manual settings you'd previously set up (under your previous version of Windows) and will revert to "let windows manage my virtual memory settings." This is not a bug; it's a design choice (by Microsoft) based on the premise that Windows can do a better job of managing virtual memory than you can. (See the KnowledgeBase Articles Q231991 and Q128327.) For people who want to get the absolute most out of their PCs, I believe that's a poor assumption.
In any case, although it initially sets itself up to manage your virtual memory, Win98SE will let you choose to manage your virtual memory on your own after the first full boot.
But if you can't adjust or retain manual settings for virtual memory, then something's wrong, and you should consider a clean reinstall to eliminate whatever's causing the problem.
How Much Virtual Memory?
There's no hard-and-fast rule, and I welcome your input on this, as always. (And I look forward to a great debate!) Here's what I do:
An old rule of thumb suggested that you should set the minimum virtual memory to about 2.5 times your amount of RAM. When PCs had 8 or 16 or 24MB of RAM, this made sense. But with large amounts of RAM, it begins to get a little silly. For example, my newest PC came with 128MB or RAM: there's no way Windows needs 320MB of swap file space.
So, I use the old rule of thumb for systems with up to 32MB or less of RAM. For systems with more than 32MB and up to 64MB, inclusive, I'll set the minimum size to twice the amount of RAM. For larger system, I'll set the minimum swap file size to equal the amount of RAM. In all systems, especially those with more modest amounts of RAM, if there's plenty of disk space, I may fudge the swap file numbers upwards a bit on the premise that (1) too much swap space is better than not enough and (2) I might as well use all that hard drive real estate for something!
Note that in all cases, I'm setting only the minimum size: the swap file still can grow, if needed. (And if you notice a lot of disk activity as you work, simply bump up the size of the swap file a bit.) But with a reasonable minimum swap files size, you can help eliminate at least most of the unnecessary disk-thrashing that can happen with dynamic or too-small swap files.
OK, what are your swap file secrets? What tips can you share? What optimization tricks do you know? And just what is the perfect size for a swap file, anyway? Join in the discussion!