How to interpret Windows Task Manager?
Asked Answered
C

4

66

I run Windows 7 RC1, which uses the same WTM from Vista. When i look at the processes, there some columns I'm not sure what the differences are:

  • Memory - working set
  • Memory - private working set
  • Memory - commit size

can anyone tell me what they are?

Cherin answered 23/7, 2009 at 9:33 Comment(4)
Although this is a valid question, it's probably better asked on superuser.comMiceli
this question is valid here since we are supposed to understand how an OS handles memory rigth?Berkeley
I'm happy with it here. When tracking down memory leaks, I've often looked at these values with the same confused eyes!Midriff
Well, maybe... But it isn't directly connected with programming. So maybe it would still be better off at superuser?Haggi
H
77

From the following article, under the section Types of Memory Usage:

There are two main types of memory usage: working set and private working set. The private working set is the amount of memory used by a process that cannot be shared among other processes, while working set includes the memory shared by other processes.

That may sound confusing, so let’s try to simplify it a bit. Lets pretend that there are two kids who are coloring, and both of the kids have 5 of their own crayons. They decide to share some of their crayons so that they have more colors to choose from. When each child is asked how many crayons they used, both of them said they used 7 crayons, because they each shared 2 of their crayons.

The point of that metaphor is that one might assume that there were a total of 14 crayons if they didn’t know that the two kids were sharing, but in reality there were only 10 crayons available. Here is the rundown:

  • Working Set: This includes all of the shared crayons, so the total would be 14.
  • Private Working Set: This includes only the crayons that each child owns, and doesn’t reflect how many were actually used in each picture. The total is therefore 10.

This is a really good comparison to how memory is measured. Many applications reuse code that you already have on your system, because in the end it helps reduce the overall memory consumption. If you are viewing the working set memory usage you might get confused because all of your running processes might actually add up to more than the amount of RAM you have installed, which is the same problem we had with the crayon metaphor above. Naturally the working set will always be larger than the private working set.

Headcloth answered 23/7, 2009 at 9:50 Comment(0)
H
28

Working set:

Working set is the subset of virtual pages that are resident in physical memory only; this will be a partial amount of pages from that process.

Private working set:

The private working set is the amount of memory used by a process that cannot be shared among other processes

Commit size:

Amount of virtual memory that is reserved for use by a process.

And at microsoft.com you can find more details about other memory types.

Haggi answered 23/7, 2009 at 9:56 Comment(0)
T
5

'Working Set' is the amount of memory that the process currently has in physical RAM. In other words, accessing any pages in the 'Working Set' will not cause a page fault since the page is in RAM.

As for the other two, I'm not 100% sure, probably 'Working Set' contains sharable memory, such as memory mapped files, and 'Private Working Set' contains only pages that the process can use and are not shareable.

Have look at this site and search for the speaker 'Dave Solomon'. There is an excellent webcast that he gave which explains about Windows memory, and he mentions working set, commit sizes, and other memory terms.

EDIT:

Those site links are indeed dead :(

Instead, you can search Google for

vimeo david solomon windows

Those same videos look to be available on Vimeo now, which is cool.

Teletype answered 23/7, 2009 at 9:43 Comment(1)
Thanks for the tip. Have updated my answer to reflect that the site link is dead.Teletype
R
2

If you open the Resource Monitor from the WTM, mousing over the various column headings of the interesting process displays a pretty informative tool tip.

e.g. Commit(KB): Amount of virtual memory reserved by the operating system for the process in KB.

etc.

Recalesce answered 15/7, 2015 at 18:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.