13

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

17
  • What OS are you using? You'll get better answers with more information :) Jun 3, 2011 at 1:46
  • Apologies see new tag :)
    – soandos
    Jun 3, 2011 at 1:47
  • @soandos: Have you tried disabling superfetch and rebooting? Does it make a difference?
    – user541686
    Jun 6, 2011 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, 2011 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. Jun 10, 2011 at 1:49

9 Answers 9

5
+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.

4
  • 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, 2011 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. Jun 6, 2011 at 18:25
  • For future reference, here's Mark Russinovich's TechEd 2011 talks on Windows memory management: channel9.msdn.com/Events/TechEd/NorthAmerica/… Jun 13, 2011 at 2:22
  • This "answer", even though accepted, does not answer the question! It merely suggests tools and reading for investigation. Sep 27, 2018 at 23:41
8

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.

4
  • 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, 2011 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, 2011 at 2:05
  • It did nothing.
    – soandos
    Jun 3, 2011 at 2:09
  • Memory used by Superfetch is on the Standby page list and is counted as part of "Available". It's not counted as "in use" because it can be repurposed (yanked out of the Standby list and put into a process) just like everything else on the Standby list, and everything on the Free and Zero list too. Sep 27, 2018 at 23:39
5

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".

7
  • So what program should I use to figure it out? PS Task mangager does have the kernel memory listed.
    – soandos
    Jun 6, 2011 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, 2011 at 14:05
  • Resource manager gives a number within 15 of Task manager.
    – soandos
    Jun 6, 2011 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, 2011 at 19:44
  • The notion that Task Manager is a "very old Windows program" is silly. It's updated with every version of the OS just like just about everything else. As for "the only numbers you can get", haven't you used Performance Monitor? Sep 27, 2018 at 23:37
3

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

2
  • 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, 2011 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, 2011 at 6:08
3

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.

3
  • I looked at that, and that does not give enough. Thank you though.
    – soandos
    Jun 9, 2011 at 16:50
  • Are you asking about the difference between the Commit and the Physical Memory numbers? Jun 10, 2011 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, 2011 at 18:03
2

@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.

8
  • I have an Nvidia GTS 360M. It is not a great video card, but it does have a GB of memory.
    – soandos
    Jun 8, 2011 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, 2011 at 18:03
  • Standard with the computer, 1920x1080, no idea. Is there a way to just measure this?
    – soandos
    Jun 8, 2011 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, 2011 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, 2011 at 18:43
1

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.

1
  • 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, 2011 at 17:58
0

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.

-1

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

1
  • -1 It is not the cache as that is 1) counted separably, 2) easily accounted for.
    – soandos
    Jun 8, 2011 at 19:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .