• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

"Working Set" vs. "Private Working Set"?

vj8usa

Senior member
What's the difference between these two columns in the Windows task manager? Only the private working set is shown by default, but I traditionally always show the full working set instead, since that seems to show how much RAM a process is actually using. Why does it default to only showing the private set, and what's the difference between that and the non-private set?

edit: apparently the private set is the amount of memory that a process uses that can't be shared with other processes. How's this "sharing" of memory between processes work?
 
Last edited:
In a nutshell: If two processes are importing the same .dll, Windows doesn't load the memory for the dll twice but both processes are getting pointers to the same memory region.

So the other measuerment isn't that significant - lots of dlls are already loaded by windows by default, so that's really free memory for the programs..
 
It's not just dll's and such. Any shared memory area isn't part of the "private" working set, I.e. any memory mapped files. You might expect this not to amount to much, but the way the file I/O APIs work all files read are implicitly memory mapped and paged in unless you explicitly specify otherwise.
 
Last edited:
And that's just one of the reasons why memory accounting is so difficult and you should take those values from taskmgr with a grain of salt.
 
Back
Top