Welcome to

Windows Resources March 19, 2001

During the past couple years I've probably tried every Windows tweak known to mankind and some of them twice. I started looking for and applying tweaks for Win95 and continued with Win98 & Win98SE. Many of my articles are attempts to prevent people from making the same mistakes I made in my relentless efforts to optimize Windows. Other articles tell you about the tweaks that worked.

The next few articles are going to focus on tweaks for Win98 (most of them should also work for WinMe).

However; today's article will attempt to explain, in simple terms (mostly cause them's the terms I understand) what is meant by Window's "system resouces" and RAM "memory" and how the two are entirely different.

System Resources are of two kinds: User Resources, and GDI (Graphic Device Interface) Resources. "The User component manages input from the keyboard, mouse, and other input devices and output to the user interface (windows, icons, menus, and so on). It also manages interaction with the sound driver, timer, and communications ports".(1) User Resources are limited to a fixed 64 KB. You cannot increase this.

"The Graphics Device Interface (GDI) is the graphical system that manages what appears on the screen. It also provides graphics support for printers and other output devices. It ... interacts with device-independent graphics drivers, including those for display and printer output device drivers."(2) GDI Resources are also limited to a fixed 64 KB. You cannot increase this.

The 64 KB limits are used to ensure backward compatibility for 16-bit programs originally written for DOS and Win3.x. This backward compatibility is one of the main reasons Win95/98 would be chosen by a user instead of Win2000 (which has much poorer and less reliable backward compatibility for 16-bit programs). The 64 KB limitation on User and GDI Resources does not exist in Win2000, and thus Win2000 may not be able to run some of the particular programs causing the "Resources drain" in Win95/98).

You can easily have resources drop to 10-15% without a problem, however; when Resources get in the 15% range, it is time to think about shutting down some programs for a while. This is one reason it's a good idea to have the Windows Resource Meter(RSRCMTR.EXE) running in the background and displaying resource consumption rates in the tray.

When memory it discussed it most often refers to Random Access Memory. Windows uses this RAM in prodigious amounts and so as not to consume it all; Windows also stores data on your hard drive in what is commonly known as the swap file.

At the same time the Resources are dropping, you are probably consuming more RAM. You may be pushing your swap file functioning much harder. Also, not all programs interact well. That is, some of them tend to interfere with each other (especially if they include older 16-bit DOS or Win3.x programs). Using more programs at once increases the chance that you will encounter this type of conflict.

But Resources are not the problem in this situation. Instead, you should examine how your Windows memory management is configured; especially in Win98 & WinMe. Over zealous memory management commonly causes problems resulting in system slowdowns and even freezes or lockouts. This will be the topic of the my next article "Messing with Windows Memory Management".

You may have noticed that resources do not return to their full value after you have exited all of your programs.

One reason for resource depletion is that a particular program sometimes will not free resources upon exit, as it is supposed to do. Perhaps because it was badly written.

Another reason is that Resource depletion can also occur if you start to load a program and then quit it before it has completely started.

"Another reason involves how Windows handles system initialization. Windows defers much of system initialization until the first time a program asks for a particular service. For example, each font is initialized when a program first asks for it, rather than initializing all fonts at system startup. Then, if a program requests a service that uses deferred initialization, the service remains initialized after the program has exited -- the system resources associated with that service are not freed. The system keeps the service initialized so that the next program that requests the service does not have to wait for the service to be initialized. (This behavior is by design.)

In addition, for compatibility reasons, Windows does not free system resources abandoned by Win3.1-based programs until all Win3.1-based programs have been closed. Only when there are no Win3.1-based programs running can Windows safely release abandoned system resources." (3)

In conclusion:

  • remember that Resources are finite and loading up several large resource hogs is bound to cause problems. Programs with heavy graphics demands are among the biggest hogs Heavy multimedia use puts large demands on resources as well.
  • Also remember that simply throwing more RAM memory into your machine does not change the fact that Resouces are finite.
  • And finally; any program that claims to improve management of Resources on Win98 and WinMe is a waste of money.

    That all for now folks.

    ------------------------------

    (1) Windows 98 Resource Kit, article titled "Core System Components."
    (2) Same as above.
    (3) Microsoft Knowledge base article called "Free System Resources Do Not
    Return To Previous Value."