etoma

Adventures in Computing

Freeing System Resources

Freeing System Resources

You've probably gotten this warning from Windows:

"Ninety percent or more of your system resources are in use. Close programs now or your computer will explode."

Your initial reaction, like mine, might have been: "I've got plenty of memory and hard drive space. What's going on?"

Unfortunately, this somewhat cryptic message has very little to do with RAM and hard drive space. It refers to small areas of Windows memory that are used to keep track of open windows and other objects on the screen, like fonts, listboxes, timers, menus, and so forth.

I learned far more about this subject than I wanted recently, when my system kept collapsing because the system resources kept disappearing. The Microsoft Web site has surprisingly little on the topic, but a search in newsgroups and another at Google yielded the information I needed.

I was surprised, though, to find an astonishing amount of misinformation as well. Far too many references, on supposedly well-informed sites, referred to system resources as RAM, and recommended closing applications to free up more RAM. While closing applications can help system resources, the problem is not with RAM.

What Causes the Problem

When Windows is running, what you see and do are built from a collection of objects that, together, make up the Windows experience. All these objects have to be tracked-their location in memory, their status (open, checked, maximized, etc.), their menus, and much more-so they can be displayed when necessary, closed, or restored without trampling over anything else in your Windows session.

Windows 3.1 was notorious for running out of system resources. Windows 95 changed how these items are handled, and Windows 98 uses the same scheme.

Technical discussion

Briefly: Windows has five areas, or "heaps," that store information about system resources. User32.dll, which manages user interface functions like window creation and messages, uses a 16-bit heap and two 32-bit heaps. One of the 32-bit heaps stores a WND window structure for each window in the system. The other stores menus. The 16-bit heap stores message queues, windows classes, etc. GDI32.dll, the graphical device interface, holds the functions for drawing graphic images and displaying text. It uses a 16-bit heap and a 32-bit heap.

Why You Have a Problem

The point here is that this space is limited, and everything you run on the computer uses some of it. When your system slows to a crawl, the odds are good that you have a system resources problem.

My problems with system resources began with an update to Eudora Pro, my e-mail program. (This falls under the heading "Free Updates Aren't Always a Good Idea.") It took me a while to realize that I had upgraded Eudora about the time the problems started.

When the light bulb lit, I went to a Eudora newsgroup to search for comments. (Hint: it's easier to search for this kind of thing at Deja News (www.deja.com/usenet/). I quickly discovered complaints about the system resources used by Eudora, along with suggestions on increasing the resources available.

A search on the Web turned up more suggestions. It quickly became clear that this is a common problem, since I found pages at Compaq, Adobe, PC Magazine, and other sites discussing how to cope.

In essence there are three steps in dealing with this problem. First you have to learn the extent of the problem. Windows 9x includes a tool, the System Monitor, that shows the percentage of User, GDI, and System resources available (the system resource figure is a combination of the other two, although it always seems to match the lower of the other two numbers).

Resource Meter is rsrcmtr.exe in the C:\Windows directory. You can open Windows Explorer, find the file, and drag it to your desktop to create a shortcut. In Win98, you can then drag it to the right side of the system tray to have it run every time you boot up. (Note that this uses some resources, too.) This will give you a constant check. The icon changes colors as the resources change: green if you've got plenty, yellow if you're getting low, and red if you're in the danger zone.

With this icon in the system tray, you can start checking which programs use the resources. Start with a clean boot. Then float your mouse pointer over the system monitor and note the resources available. If you're under 75%, it's a good idea to start checking.

Click on the Start button, then Run, and type in msconfig.exe. When the window opens, click on the Startup tab. You'll get a list of programs-the checked items run every time you boot your computer, and usually put an icon in the system tray.

You should go through this list carefully and uncheck those you don't want or need. Many are added automatically when you install a program. Real Audio, for example, runs a program to help it start up quickly. WordPerfect adds several items to the tray when you install it. Virus programs and other utilities are usually running in the background.

But you might find programs you don't need, or that you no longer use. Sometimes you'll find duplicates, which are rarely unnecessary.

If you uncheck these programs one at a time, then reboot, you can see what each individual program uses.

Once you've cleared out this list, reboot and check your resources again.

Check Out Your Programs

Then open a program, and when it's completely open, check the resources again. As you open more windows in the program, keep checking resources. You may be surprised at how much of your system is used. In my case, Eudora Pro was using 20% of my system resources, an astonishingly large amount for one program.

It turned out that Eudora opens the inbox, outbox, and trash folders when it runs, and every message in these folders uses some resources. I have a bad habit of not cleaning out my inbox, which contributed to the problem.

In the end, because the latest Eudora upgrade doesn't address the resource problem and costs as much as some other programs, I tried alternatives, and changed to Calypso, an excellent shareware mail program which, on my system, used about 5% of resources.

Problems in Windows Itself

Finally, note that system resources are not always freed up when a program closes, apparently due to sloppy programming practices in Windows.

Windows frequently puts off initializing things a program needs, like fonts, until they are requested. Once requested, those items stay available after the program is closed and the resources used by that item are not freed. Yes, this is the way they designed it. I suspect it's a crude hack to make programs appear to load faster.

With 16-bit applications (anything that will run in Windows 3.1 or DOS), none of the system resources used are freed up until all such programs are closed. Microsoft says this is for compatibility purposes. My guess is that it's laziness: rather than program in a way to tell if the resource is still needed, Microsoft leaves it open.

Microsoft also says that closing a program before it has a chance to completely start up can strand resources and reduce the level of free system resources.

If you're finding that you have regular problems with low system resources, as I have, first check the programs that are always running; then check the programs you use regularly.

Internet browsers are notorious for using and not freeing up system resources. But you might find that one browser works better for you than others. You can also try out replacements for your programs--for example, Calypso leaves me more free resources than Eudora Pro, and offers better features in the bargain.