Helping people with computers... one answer at a time.

When your system starts to slow down a frequent culprit are programs using excessive memory. It's fairly easy to find out which programs they are.

When I am online for any length of time I start losing RAM, any thing I am doing online starts to slow down! I recently installed an extra 512MB of RAM but didn't seem to help much. The only thing that seems to help is to shut down AOL, wait about 5 minutes and restart. Then all is OK.

If you believe you're losing available memory, or RAM, there are some fairly easy ways to see who's eating it up. And yes, programs that use more memory than they should can easily contribute to a machine slowing down more and more the longer you use it.

The most common culprit is what's called a "memory leak". This is when a program running on your PC reserves some of your computer's memory for itself, and then loses track of it. The net effect is that the program loses the ability to release that memory for other programs to use.

And if a program has a memory leak in some operation that it performs regularly, it can slowly eat up more and more of your system's memory until there's little left for any other programs.

In practice the effects of memory leaks are often minimized by the way manages memory by swapping unused memory to disk in the paging or virtual memory file. And memory that has been lost to leakage, while technically "in use" can actually not be accessed since the program that asked for it has lost track of it.

However over time memory leaks can definitely impact system performance. Rebooting resolves it for a while, as does shutting down the program that has the leak. The question is how to identify that program?

We'll start by downloading my most recommended tool: Process Explorer.

Fire up process explorer and you should see something very much like this:

Process Explorer

You should see columns labeled Working Set and Virtual Size. If you do not, right click on any column header, click on Select Columns... and in the resulting dialog, click on the Process Memory tab:

Process Explorer Column Selection

Make sure that Virtual Size and Working Set Size are both checked and click OK.

Click on the column header labeled Working Set and all the running processes on your machine will be sorted by decreasing physical memory use. The programs using the most physical memory will be listed at the top:

Process Explorer sorted by Working Set

Here you can see that on my machine as I type this firefox.exe is using the most memory, followed by explorer (the Windows taskbar and UI), Process Explorer itself, and the rest of the programs running on my machine.

Keep this open and watch it as you use your computer. If you see one program that's continually using more and more memory, that could be a sign of a problem with that program.

Now repeat this process, but this time sort by Virtual Size:

Process Explorer sorted by Virtual Size

Virtual Size include all the memory allocated by each process, including that which has been swapped out to virtual memory or the paging file. As you can see, sorting by this typically results in a different order of programs. In my case one of the instances of svchost.exe has consumed the most virtual memory, followed by process explorer and Window's explorer.exe.

Once again, leave this running as you use your computer for a while and watch for programs that continually grow in their virtual memory allocation.

As your system performance degrades you may see one program with an excessively large physical or virtual memory allocation. What to do next will depend entirely on exactly what that program turns out to be, but at least you'll have identified the potential culprit.

Article C2985 - April 5, 2007

Leo Leo A. Notenboom has been playing with computers since he was required to take a programming class in 1976. An 18 year career as a programmer at Microsoft soon followed. After "retiring" in 2001, Leo started Ask Leo! in 2003 as a place for answers to common computer and technical questions. More about Leo.

Not what you needed?

Recent Comments
11 Comments

Thanks Leo,

Have installed and run the Process Explorer. It shows that SQL Server Windows NT uses 1,175,000 of virtual memory approximately. This is the higher virtual memory item. Is it normal ?

No way for me to know - it depends on how it's being used. I'd expect SQL Server to use a lot of memory, though.
Leo
09-Oct-2010
Posted by: Sacha at October 9, 2010 2:16 AM

I installed the Process Explorer, but the instructions with the download say to read the help file for further information on how to interpret the data. When I try to open the help file, I get a message stating, "Navigation to the webpage was cancelled". Running Windows XP SP3. I'm fighting a serious memory leak and looks like this tool will be very helpful in finding it. How do I get into the help file??

Posted by: Vee Butterfield at November 7, 2010 2:01 PM

Hi Leo.
Your article identify my problem. Thanks a lot.
But..can you give me a solution?What if i need this program to run 24/7 and dont want to shut it down in order to free the memory?
Is there a way to free the memory without shut down the program?
Im running XP 32bit and the program starts with 4Mb of memory..but after a few hours it uses 150Mb of memory.
Any idea?
Thanks a lot.

You didn't tell me what program it is, so I have no idea what's possible. Basically you'll need to understand the appropriate options and settings for the program - perhaps contact the program's manufacturer. Anf for the record: 150MB isn't much these days. I'm not sure I'd worry.
Leo
13-Dec-2010

Posted by: Kostas at December 13, 2010 6:25 AM

Hi again. Thank you for the quick reply.
Yes, 150Mb isn't much. But what if the pc has only 1GB of memory (maximun for the current motherboard) from wicht 260MB are used by windows itself and i'm running this program (L2NET) x3 (3x150=450MB). For your information is a small program (140MB) that helps me with a game. Right now each one L2NET uses 180MB of memory. Total usage of memory 0,99GB of 1GB. I hardly open the explorer. Contacting the manufacturer is out of the question (company doesn't exist, self made by few programers).
Bottom line, i know i talk (***) right now, but any idea? Any alternative idea?
Maybe the program itself has the problem, but what can i do if i have to use it...?

Thank you for your time. Best regards.

Posted by: Kostas at December 13, 2010 12:40 PM

after all posts here ;am still of need to know; when have open 30 tabs ;whether one of them and which one is it that uses up my ram ?task manager shows one chrome exe is using a third of all my ram ;now which oine ???

Use task manager to kill that one, and see which tab disappears.
Leo
28-Jan-2012
Posted by: star at January 26, 2012 9:06 PM
Post a comment on "How do I find out who's using all my memory?":





Remember Me?

(You may use HTML tags for style)

Before commenting, please...

  • READ THE ARTICLE. A comment that shows you didn't will be deleted and ignored.

  • Comment only on the article. Use the search box at the top of the page if you have a question about something else.

  • NO PERSONAL INFORMATION in the comment. No email addresses. No phone numbers. No physical addresses.

  • Anything that looks the least bit like spam will be deleted. Links to unrelated sites or links that appear to be primarily promotional will be deleted, or the comment will be deleted.

  • Don't ask me to recover lost passwords or hacked accounts. I can't. Those comments will be deleted.

  • I can't respond to every comment. And I can't vouch for the accuracy of others who do.

Please wait. Your comment is being processed ...