6

I am using windows 7 Ultimate 64 bit. I need to know what exactly standby memory is. According to the tooltip in Task Manager> Resource Monitor window, "It's "Memory that contains cached data and code that's not actively in use". I need to know, 1- what's meant by "not actively in use"? 2- When it's got allocated? 3- When it should be released? I'd appreciate if you can give me an example that illustrates the answers to these 3 questions.

Eslam
  • 191

1 Answers1

8

Microsoft forums link to this explanation of the different memory pools from Tech Republic.

Standby

The Standby list, which is shown in blue, contains pages that have been removed from process working sets but are still linked to their respective working sets. As such, Standby list is essentially a cache. However, memory pages in the Standby list are prioritized in a range of 0-7, with 7 being the highest. Essentially, a page related to a high-priority process will receive a high-priority level in the Standby list.

For example, processes that are Shareable will be a high priority and pages associated with these Shareable processes will have the highest priority in the Standby list.

Now, if a process needs a page that is associated with the process and that page is now in the Standby list, the memory manager immediately returns the page to that process' working set. However, all pages on the Standby list are available for memory allocation requests from any process. When a process requests additional memory and there is not enough memory in the Free list, the memory manager checks the page's priority and will take a page with a low priority from the Standby list, initialize it, and allocate it to that process.

TechRepublic

To summarize your direct questions:

Question 1: What is meant by not actively in use?

It means the process that was using that data, doesn't currently need it. The data is cached for quick retrieval in case the process becomes active and requests it.

Question 2: When it got allocated?

The data in memory was moved from an active pool of memory, to standby, when the process using that data became inactive. The data was originally allocated into an active memory pool when the process was started the first time.

Question 3: When it should be released?

Windows automatically handles the memory management, and will allocate and deallocate the shared memory as necessary to support the currently running applications. You can view and manually release the standby memory by using RAMMap, a Sysinternals tool from Microsoft. Under normal circumstances, manually clearing the standby memory should not be necessary, but this is a cool tool to use to poke around at your memory and processes.

RAMDisk Empty Standby List Screenshot

The answer on this post contains a good deal of information about how memory is allocated and used in Windows 7.

The answer on this post contains some information and links about hardware reserved memory. Which I think can just help fill some more information gaps about memory.

You may want to check out this Microsoft Doc about Memory Management, which explains memory from the development perspective.