Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmer's understanding of Memory in the Vista Windows Task Manager

I know a fair bit about the Windows Task Manager in XP, but I would like to understand it better in Vista. What is the difference between "Working Set (Memory)" and "Memory (Private Working Set)". What is the Paged Pool, what is the NP Pool (Non-Paged?). How do I use these to determine what is going on with memory usage? As an aside, when you minimize a program it frequently returns 90% of the memory it is using. Is there any way to do this without minimizing it?

like image 976
user29140 Avatar asked Oct 18 '08 17:10

user29140


People also ask

How do I read the memory section of Task Manager?

Clicking on the options in the left pane provides details about CPU, memory, disk and network resources. In this tab, it's easy to see memory usage and composition. The Windows 10 Task Manager's view of resource use for GPU, CPU, memory and more.

What does the memory in task manager mean?

Memory — a continuously updated display of how much of your RAM is being used by each process and each user at the given moment. Total memory usage is shown in the column header.

Is Task Manager memory RAM accurate?

As for memory usage reporting, the Task Manager is accurate. If you want a second opinion, you can go to www.sysinternals.com and download Process Explorer which is quite useful for tracking system resources too.

What does Task Manager manage in an operating system?

What is Task Manager? Task Manager shows you the programs, processes, and services that are currently running on your computer. You can use Task Manager to monitor your computer's performance or to close a program that is not responding.


1 Answers

This MSDN blog entry might be informative on the first part of the question. A brief excerpt:

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.

As discussed in the article, the part about private versus not-private has to do with memory used by the process that can be shared by other processes. If you can't share the memory (perhaps the memory is used by the image of a DLL had to be relocated in memory), it becomes private. Heap memory is also always going to be private.

The reason you see the memory drop dramatically when minimizing a program is that Windows automatically trims the working set of a process whenever it its main window is minimized. See this Microsoft KB article for more, including instructions on how to do this yourself.

The paged pool and non-paged pool memory refers to kernel memory used by the process. Memory from the paged pool can be paged out (removed from physical memory when memory pressure increases). Memory from the non-paged pool will always remain in physical memory, so generally it's preferable for this to stay small. Unless you're writing device drivers, though, as a user-mode application developer you generally won't need to worry about these two items.

like image 186
Charlie Avatar answered Nov 10 '22 17:11

Charlie