Here's what I have learned in the last months: It's rather complicated.
- the amount of memory of "Free" memory (see Task Manager ( TM )) is the same "Free" as in Windows' Resource Monitor (RM). From Vista onwards Windows tries to keep the "Free" memory as small as possible IF (!!!) the Superfetch Service is enabled !!!!. (it's disabled with an SSD installed).
- "Cached" ( TM ) equals the amount of "Modified" (RM) + "Standby" (RM). Superfetch also uses the info/data from the "C:\windows\prefetch" folder to load as much data/info as much upon start up & after start up. When one disables Superfetch the amount of "Standby" won't grow (too much).
- "Available" ( TM ) memory equals "Standby" (RM) + "Free" (RM). Memory from "Standby" (RM) can be made available when needed.
- "In Use" (RM) is the part of the memory where all the programs, drivers, the filecache and other buffers are "hanging out".
If you want to see the "Standby" memory grow like mad then one should run e.g. the ESET Online virusscanner. The program must scan A LOT OF files and all those files are loaded/"cached" into the "Standby" memory. Windows thinks that the user will use those files at an later stage and acts accordingly.
Cleanmem uses a Windows' API ("EmptyWorkingSet") tries to release memory from running programs. It also can collapse the file cache. That info/data is moved (by Windows !!!!) to the "Modified" (RM) part of the memory and can be reclaimed instantly when needed.
Filecaches can become VERY large as well. I have seen file caches as large as 2.5 GB.
When a program releases memory (no, I am NOT talking about closing a program), then that part of the memory ("in use", RM) is added to the "Modified" (RM) or "Cached" ( TM ) part. If a program wants that info/memory back, then it can reclaim that memory instantly. After a while Windows removes the data/info, in a slow pace, from the "Modified" part of the memory.
When a program is closed then all the info/data released is moved to the "Standby" part of the memory.
Problems arise when the amount of "Free" memory ( TM + RM) is (very) low. Then Windows wants to keep "Standby" (RM) as large as possible. And that goes at the expense of "Modified" (RM). Windows then tries to write that "Modified" info to the swapfile with a higher priority before being removed. And the file transfer from the memory to the swapfile is (comparatively) slow and slows down one's system.
Another problem arises when the swapfile is disabled (with e.g. a SSD installed). Then Windows is unable to write data/info to the swapfile and the amount of "Modified" (RM) remains (very) high (I have seen "Modified" memory grow to a massive 2 to 2.5 GB). "Modified" remaining (very) large is also the result of lousy memory management/sloppy programming. Like not releasing "Modified" and/or "Standby" memory.
Another problem is that memory management in Win 7 is slightly different than in XP. Just different enough to cause memory problems in extreme cases. So, a program should be optimized for e.g. Win 7 of Win 8 as well.
If programs are/computer is using LOTS of memory (>60 or >70% "In Use" (RM) of total physical memory) then the best option is to increase the amount of memory but that's not always possible or necessary. Then using Cleanmem is the 2nd best option.
Answering Cat's question: you have a SSD and Superfetch disabled at the same time. Then Windows also won't "cache" any/too much info (see story above).
When I look at the 2nd picture then I see:
- Standby is ~ 5 GB in size
- Modified is ~ 1 GB in size.
Sources (among others):
- Info from the PcWinTech's website and a discussion I had with the author of the program.
Edited by Willy22, 06 June 2014 - 04:08 AM.