Introduction

The amount of RAM used to be the limitation for the number of applications you can open at any one time. Even with the use of virtual memory, there was a practical limit to the number of applications you can open.

But today, having 1GB to 2GB of memory is not uncommon. With so much memory, it's now possible to load up many applications, even memory-guzzling ones like Adobe Photoshop. Or is that only what we think?

Believe it or not, even if you have so much memory, you may still encounter problems loading up all the applications you want. In fact, you may also face problems with the applications that are already running!

The Symptoms

Before we proceed further, ask yourself if you have ever encountered any of the following problems :-

You try to open an application but it refuses to load or it starts to load and then it disappears! You try to open or use an application but you get an "Out Of Memory" error message! One of your running applications inexplicably quits! When you right-click on your application, nothing happens! The command menu refuses to pop-up! Your web browser simply refuses to load any more windows or tabs! Your application is missing some menus or toolbars! You get the following error messages :

Initialization of the dynamic library <system>\system32\user32.dll failed. The process is terminating abnormally.

Initialization of the dynamic library <system>\system32\kernel32.dll failed. The process is terminating abnormally.

A quick check of the Task Manager will usually show plenty of free memory, like in this example.

As you can see, the computer above has 1GB of memory, of which only 58,436 KB has been used by applications and over 500MB allocated to the system cache. This leaves just over 390MB of free memory. But you still won't be able to open any more applications!

Why???

The Problem

The reason why we are all facing this problem is because the system has run out of desktop heap!

The desktop heap is a section of memory reserved for the storage of menus, hooks, strings and windows. This heap is allocated memory from a fixed 48MB system buffer that is also used to store printer data and font drivers.

By default, Windows allocates a total of 4.5MB of memory for the desktop heap. But if the system ever runs out of space in the desktop heap, it won't be able to load new windows. It's as simple as that!

Fortunately, the solution is also quite simple. Let's take a look!



