Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have been feeling this way for a while, looking at task manager mentally ballparking how much physical memory should be in use, and noticing a large disparity. I finally got around to measuring it. Taking the results of tasklist and adding, gave about 3.87 GB. Task manager told me I was using 4.6 GB of memory. This seems like a large disparity. Where did it go?

EDIT: So its clear, it is not going to prefetch. It has also been suggested that its part of the OS, but not part of any of the system processes. If this is true, please find a way to get the OS to tell me how much memory is getting used. Since I want to find out where the memory went, asking me to look at the difference does nothing for me.

EDIT 2: It is not the following:

  1. The kernel
  2. The cache
  3. Hardware reserved memory

Picture of resources taken up. Not quite sure what it will do but... enter image description here

share|improve this question
    
What OS are you using? You'll get better answers with more information :) –  Cam Jackson Jun 3 '11 at 1:46
    
Apologies see new tag :) –  soandos Jun 3 '11 at 1:47
    
@soandos: Have you tried disabling superfetch and rebooting? Does it make a difference? –  Mehrdad Jun 6 '11 at 2:30
    
Yes I did and no it didn't, though it would also be nice to know how much memory prefetch takes up. –  soandos Jun 6 '11 at 2:31
2  
Prefetch does NOT use memory, it caches the most used bytecode from compiled applications. Do not disable it or your system performance will fall drastically. –  Breakthrough Jun 10 '11 at 1:49

9 Answers 9

up vote 4 down vote accepted
+50

I suggest downloading the Sysinternals Suite from Microsoft. It includes several utilities that will give you more information than Task Manager does. Take a look at the Process Explorer, RAMMap, VMMap, and Process Monitor utilities. To get the most information from them, you may need to do some configuration to change what info is displayed.

Also, since you're interested in Windows memory, here is a series of blog posts from Mark Russinovich, one of the Sysinternals developer/founder. It will help make sense of the info the utilities provide.

share|improve this answer
    
RAMMap seems to be telling me that task manager is overstating the total ram usage by about 100MB, but according to the list of memory that I can pull using tasklist, RAMMap is also overstating by about 200MB (tasklist +200 = RAMMap, RAMMap + 100 = taskmanger) –  soandos Jun 6 '11 at 14:06
1  
I'm not sure of what you're seeing, and I'm not on a Windows machine atm to look into it. However, if you still want to dig deeper, ask on the Sysinternals forums. There are some very smart people there that are very "into" Windows internals. They'll be more familiar with the finer points of Windows memory management. –  Joe Internet Jun 6 '11 at 18:25
    
For future reference, here's Mark Russinovich's TechEd 2011 talks on Windows memory management: channel9.msdn.com/Events/TechEd/NorthAmerica/… –  Joe Internet Jun 13 '11 at 2:22
    
thank you. –  soandos Jun 13 '11 at 2:37

Windows 7 uses 'unused' memory to precache things to make things run faster. Should you need this memory, it'll get freed up.

Its a feature, not a bug ;)

From technet

After you’ve used a Windows Vista system a while, you’ll see a low number for the Free Physical Memory counter on Task Manager’s Performance page. That’s because SuperFetch and standard Windows caching make use of all available physical memory to cache disk data. For example, when you first boot, if you immediately run Task Manager you should notice the Free Memory value decreasing as Cached Memory number rises. Or, if you run a memory-hungry program and then exit it (any of the freeware “RAM optimizers” that allocate large amounts of memory and then release the memory will work), or just copy a very large file, the Free number will rise and the Physical Memory Usage graph will drop as the system reclaims the deallocated memory. Over time, however, SuperFetch repopulates the cache with the data that was forced out of memory, so the Cached number will rise and the Free number will decline.

share|improve this answer
1  
1) so why is that not listed under the memory for that process? 2) how do I know that is the case here? –  soandos Jun 3 '11 at 1:59
    
i believe superfetch is under svchost. It MIGHT be counted as kernel memory. You can try turning superfetch on and off to check. –  Journeyman Geek Jun 3 '11 at 2:05
    
It did nothing. –  soandos Jun 3 '11 at 2:09

The numbers you see are totally imprecise and should only be taken as indications.

An operating system is an extremely complex entity and a simple-minded program like Task Manager can never total the entire usage, many parts of it are simply inaccessible in User mode under which it runs. Some of the elements that are inaccessible to it, or are simply impossible to attribute to any "task", are the hardware segmentation tables, shared-memory allocations, kernel-allocated memory, page-memory allocations, device-memory and many more.

You will find more explanations in How do I interpret the Performance tab of Task Manager?, but I choose to quote this part :

What do you expect from a program calling itself the "Task Manager" anyway? There is nothing called a "task" in the operating system kernel - the OS has "processes" and "threads". DOS had "tasks". The Intel hardware has "task" structures, but the OS doesn't use them because it's faster for it to do it itself.

The Task Manager is a very old Windows program, has problems even attributing functions to services, and the numbers it shows should be taken with a large pinch of salt. It is probably missing out on large areas of memory that it cannot manage to count or attribute to any "task".

share|improve this answer
    
So what program should I use to figure it out? PS Task mangager does have the kernel memory listed. –  soandos Jun 6 '11 at 13:57
1  
There is no one program that will give you ALL the information. Task Manager will give some info and an approximation, Device Manager can tell about device-memory, WinObj about memory objects. The best source is the Resource Monitor, called from the Performance tab of Task Manager (and elsewhere), which is actually the modern replacement of Task Manager. –  harrymc Jun 6 '11 at 14:05
    
Resource manager gives a number within 15 of Task manager. –  soandos Jun 6 '11 at 18:47
    
These look like the only numbers that you can get from the Windows interface. They are not precise, but are much better than nothing. They can be used for troubleshooting (which I do a lot), but don't expect them to include everything. –  harrymc Jun 6 '11 at 19:44

As you may have noticed, Task Manager can give you a simplified snapshot of how most applications are affecting your system, but leaves a lot to be desired. If you really want to dig into caches in RAM etc. you need to get into Performance Monitor. It will take some work for you to build your set of system counters to monitor your system.

You can get there by running compmgmt.msc or a windows search for "computer management" and on the left-hand side, you will see a performance tree that you can expand and dig into.

Here is a reference for some of the tools available: http://technet.microsoft.com/en-us/library/cc749249.aspx

share|improve this answer
    
While I see that its a very cool tool, that can do a lot of things (as evidenced by the fact that there a ton of counters under memory, I have zero idea what I am looking for. Any ideas? –  soandos Jun 6 '11 at 6:06
    
In addition, the add counter option tends to stick to my screen, and I have to manually change the resolution back and forth to fix it (refresh does not work). Not your fault I know. –  soandos Jun 6 '11 at 6:08

The memory is probably being used for the kernel. Using Process Explorer we can see a much more detailed breakdown of system memory:

Kernel Memory Information

Here I've highlighted the amount of memory in use by the kernel, which is Paged WS + Nonpaged, or roughly ~300MB of memory. This is on a freshly started system with just webbrowser and a few other applications open, though under heavy load my home system easily breaks 500MB or even 700MB of kernel memory.

share|improve this answer
    
I looked at that, and that does not give enough. Thank you though. –  soandos Jun 9 '11 at 16:50
    
Are you asking about the difference between the Commit and the Physical Memory numbers? –  Darth Android Jun 10 '11 at 18:51
    
No, I am asking why when I run different tools that are supposed to get me the same numbers, I get different numbers. –  soandos Jun 11 '11 at 18:03

@soandos, did you take into account how much memory the video is pulling? It is very possible that the video is pulling .73 GB of RAM. Do you have a decent video card on this machine? If not, it will use RAM like this (as of what I know). If I am wrong, someone please chime in here, but I believe that this could be the effect of the video pulling from the RAM.

share|improve this answer
    
I have an Nvidia GTS 360M. It is not a great video card, but it does have a GB of memory. –  soandos Jun 8 '11 at 17:59
    
What type of monitor are you using with which resolution are you using? Also, are you doing video intensive tasks, like playing games at 1080p? And what type of RAM does you video card use(e.g. DDR1, DDR2, DDR3, DDR5)? I would look it up myself, but I tried that with someone's video card model and noticed that they made it with a few different types of RAM... –  David Jun 8 '11 at 18:03
    
Standard with the computer, 1920x1080, no idea. Is there a way to just measure this? –  soandos Jun 8 '11 at 18:06
    
Normally it will say on the packaging, I'm not sure. If you know that exact card model, you can find out on the internet. If it isn't a very powerful video card (using DDR2, DDR1) and you are using 1920x1080 with a big monitor (for instance, I am using a Samsung 46" TOC TV as my monitor at home), you can burn up a lot of memory just on video... I'm not sure if there is a way to see how much RAM your video is consuming. I will do some research on it right now though. I will comment back whether or not I find anything. I want to help you out as much as possible. –  David Jun 8 '11 at 18:21
    
I am currently checking out this program to see if it might have what we are looking for. It is SiSoftware Sandra Lite 2011.2.17.47. The description states that it does what we are looking for, such as how much RAM the video is consuming. –  David Jun 8 '11 at 18:43

The difference I think you're seeing is not because the tools not being able to see the used memory, rather it's because of different forms of measurement. I can't explain this very well but fortunately I don't have to, Mark Russinovich of Sysinternals fame has written a very good series of posts regarding process performance in Windows. The parts about physical memory and virtual memory should explain what you're seeing.

share|improve this answer
    
No, that is not the issue. I am more concerned with the total amount than where it is stored (RAM or HD). –  soandos Jun 11 '11 at 17:58

I think I solved it!

I just came across a tip about RAMMap and it turned out it's µTorrent!

Not utorrent.exe itself, but files shared by µTorrent – at least in my case: one of the files was using over 600 MB, and another over 200 MB, etc.

share|improve this answer

Some memory is used as cache. As soon as you need this memory, it is automatically released. So, no need to worry.

share|improve this answer
    
-1 It is not the cache as that is 1) counted separably, 2) easily accounted for. –  soandos Jun 8 '11 at 19:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.